An experiment in partial evaluation: the generation of a compiler generator

The present paper is an extended abstract of (Jones 1985), in which a running , non-trivial partial evaluator is described . As far as we know, this partia l evaluator is the first which has been used in practice to transform interpreters into corresponding stand-alone compilers, or to generate a compile r generator by transforming itself . A partial evaluator is a program (call it mix) written in a programmin g language L, which takes as input a program p and a known value d l of p' s first input argument . It produces as output a so-called residual program :

[1]  Mats Carlsson,et al.  The Compilation of Prolog Programs without the Use of a Prolog Compiler , 1984, Fifth Generation Computer Systems.

[2]  Peter Sestoft,et al.  An experiment in partial evaluation: the generation of a compiler generator , 1985, SIGP.

[3]  Lawrence C. Paulson A semantics-directed compiler generator , 1982, POPL '82.

[4]  Valentin F. Turchin,et al.  Experiments with a supercompiler , 1982, LFP '82.

[5]  Anders Haraldsson,et al.  On compiling embedded languages in LISP , 1980, LISP Conference.

[6]  Jr. Hartley Rogers Theory of Recursive Functions and Effective Computability , 1969 .

[7]  Andrei P. Ershov,et al.  On the Partial Computation Principle , 1977, Inf. Process. Lett..

[8]  Valentin F. Turchin,et al.  Semantic definitions in REFAL and the automatic production of compilers , 1980, Semantics-Directed Compiler Generation.

[9]  Yoshihiko Futamura,et al.  Parital Computation of Programs , 1982, RIMS Symposium on Software Science and Engineering.

[10]  Jan Komorowski,et al.  Partial evaluation as a means for inferencing data structures in an applicative language: a theory and implementation in the case of prolog , 1982, POPL '82.

[11]  Andrei P. Ershov,et al.  Mixed Computation: Potential Applications and Problems for Study , 1982, Theor. Comput. Sci..

[12]  Henning Christiansen,et al.  Control Flow Treatment in a Simple Semantics-Directed Compiler Generator , 1982, Formal Description of Programming Concepts.

[13]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[14]  Erik Sandewall,et al.  A Partial Evaluator, and its Use as a Programming Tool , 1976, Artif. Intell..