An introduction to partial evaluation
- 1 September 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 28 (3) , 480-503
- https://doi.org/10.1145/243439.243447
Abstract
Partial evaluation provides a unifying paradigm for a broad spectrum of work in program optimization compiling interpretation and the generation of automatic program generators [Bjørner et al. 1987; Ershov 1992; and Jones et al. 1993]. It is a program optimization technique, perhaps better called program specialization , closely related to but different from Jørring and Scherlis' staging transformations [1986]. It emphasizes, in comparison with Burstall and Darlington [1977] and Jørring and Scherlis [1986] and other program transformation work, full automation and the generation of program generators as well as transforming single programs. Much partial evaluation work to date has concerned automatic compiler generation from an interpretive definition of programming language, but it also has important applications to scientific computing, logic programming, metaprogramming, and expert systems; some pointers are given later.Keywords
This publication has 16 references indexed in Scilit:
- Automatic autoprojection of higher order recursive equationsScience of Computer Programming, 1991
- Partial evaluation in logic programmingThe Journal of Logic Programming, 1991
- Semantics-directed compilation of nonlinear patternsInformation Processing Letters, 1991
- A partial evaluator for the untyped lambda-calculusJournal of Functional Programming, 1991
- Mix: A self-applicable partial evaluator for experiments in compiler generationHigher-Order and Symbolic Computation, 1989
- Partial evaluation of pattern matching in stringsInformation Processing Letters, 1989
- The concept of a supercompilerACM Transactions on Programming Languages and Systems, 1986
- Mixed computation: potential applications and problems for studyTheoretical Computer Science, 1982
- A partial evaluator, and its use as a programming toolArtificial Intelligence, 1977
- A Transformation System for Developing Recursive ProgramsJournal of the ACM, 1977