The Essence of Program Transformation by Partial Evaluation and Driving

  • Authors:
  • Neil D. Jones

  • Affiliations:
  • -

  • Venue:
  • PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

An abstract framework is developed to describe program transformation by specializing a given program to a restricted set of inputs. Particular cases include partial evaluation [19] and Turchin's more powerful "driving" transformation [33]. Such automatic program speedups have been seen to give quite significant speedups in practical applications. This paper's aims are similar to those of [18]: better to understand the fundamental mathematical phenomena that make such speedups possible. The current paper is more complete than [18], since it precisely formulates correctness of code generation; and more powerful, since it includes program optimizations not achievable by simple partial evaluation. Moreover, for the first time it puts Turchin's driving methodology on a solid semantic foundation which is not tied to any particular programming language or data structure. This paper is dedicated to Satoru Takasu with thanks for good advice early in my career on how to do research, and for insight into how to see the essential part of a new problem.