Tutorial notes on partial evaluation

The last years have witnessed a flurry of new results in the area of partial evaluation. These tutorial notes survey the field and present a critical assessment of the state of the art.

[1]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[2]  Peter Weiner,et al.  Linear Pattern Matching Algorithms , 1973, SWAT.

[3]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

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

[5]  Robert S. Boyer,et al.  A fast string searching algorithm , 1977, CACM.

[6]  Donald E. Knuth,et al.  Fast Pattern Matching in Strings , 1977, SIAM J. Comput..

[7]  Anders Haraldsson A program manipulation system based on partial evaluation , 1977 .

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

[9]  William L. Scherlis,et al.  Expression procedures and program derivation , 1980 .

[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]  R. Schooler,et al.  PARTIAL EVALUATION AS A MEANS OF LANGUAGE EXTENSIBILITY , 1984 .

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

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[14]  Peter Sestoft,et al.  Automatic call unfolding in a partial evaluator , 1987 .

[15]  Dines Bjørner,et al.  Partial Evaluation and Mixed Computation , 1987 .

[16]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[17]  Flemming Nielson,et al.  Automatic binding time analysis for a typed λ-calculus , 1988, POPL '88.

[18]  Charles Consel,et al.  New Insights into Partial Evaluation: the SCHISM Experiment , 1988, ESOP.

[19]  Neil D. Jones,et al.  Mix: A self-applicable partial evaluator for experiments in compiler generation , 1989, LISP Symb. Comput..

[20]  Corrado Böhm,et al.  Subduing Self-Application , 1989, ICALP.

[21]  Charles Consel Analyse de programmes, evaluation partielle et generation de compilateurs , 1989 .

[22]  Craig Chambers,et al.  Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language , 1989, PLDI '89.

[23]  Olivier Danvy,et al.  Partial Evaluation of Pattern Matching in Strings , 1989, Inf. Process. Lett..

[24]  Andrew A. Berlin,et al.  Partial evaluation applied to numerical computation , 1990, LISP and Functional Programming.

[25]  Leon Sterling,et al.  ProMiX: a Prolog partial evaluation system , 1990 .

[26]  Olivier Danvy,et al.  From Interpreting to Compiling Binding Times , 1990, ESOP.

[27]  Jesper Jørgensen,et al.  Generating a Pattern Matching Compiler by Partial Evaluation , 1990, Functional Programming.

[28]  Carsten K. Gomard Partial type inference for untyped functional programs , 1990, LISP and Functional Programming.

[29]  Neil D. Jones,et al.  Partial Evaluation, Self-Application and Types , 1990, ICALP.

[30]  Alessandro Forin,et al.  UNIX as an Application Program , 1990, USENIX Summer.

[31]  Charles Consel,et al.  Binding time analysis for high order untyped functional languages , 1990, LISP and Functional Programming.

[32]  Olivier Danvy,et al.  Semantics-Directed Compilation of Nonlinear Patterns , 1991, Inf. Process. Lett..

[33]  Robert Glück Towards multiple self-application , 1991 .

[34]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[35]  Neil D. Jones,et al.  Compiler Generation by Partial Evaluation: A Case Study , 1991, Struct. Program..

[36]  M. Wegman,et al.  Constant propagation with conditional branches , 1991, TOPL.

[37]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[38]  Anders Bondorf,et al.  Automatic Autoprojection of Higher Order Recursive Equations , 1990, Sci. Comput. Program..

[39]  Donald A. Smith,et al.  Partial evaluation of pattern matching in constraint logic programming languages , 1991, PEPM '91.

[40]  John Launchbury,et al.  Projection Factorisations in Partial Evaluation: Partial Evaluation in Principle , 1991 .

[41]  Olivier Danvy,et al.  Static and dynamic semantics processing , 1991, POPL '91.

[42]  Erik Ruf,et al.  Using types to avoid redundant specialization , 1991, PEPM '91.

[43]  Fritz Henglein,et al.  Efficient Type Inference for Higher-Order Binding-Time Analysis , 1991, FPCA.

[44]  Anders Bondorf,et al.  Automatic Autoprojection of Recursive Equations with Global Variables and Abstract Data Types , 1991, Sci. Comput. Program..

[45]  David James Sherman,et al.  Optimization of equational programs using partial evaluation , 1991, PEPM '91.

[46]  Robert Glück Towards Multiple Self-Application , 1991, PEPM.

[47]  Karoline Malmkjær On Static Properties of Specialized Programs , 1991, JTASPEFT/WSA.

[48]  Uwe Meyer Techniques for partial evaluation of imperative languages , 1991 .

[49]  Paul Hudak,et al.  A theory of incremental computation and its application , 1991, POPL '91.

[50]  Erik Ruf,et al.  Automatic Online Partial Evaluation , 1991, FPCA.

[51]  Siau-Cheng Khoo,et al.  Semantics-Directed Generation of a Prolog Compiler , 1991, Sci. Comput. Program..

[52]  Daniel Weise,et al.  Automatic generation of compiled simulations through program specialization , 1991, 28th ACM/IEEE Design Automation Conference.

[53]  Olivier Danvy,et al.  For a Better Support of Static Data Flow , 1991, FPCA.

[54]  Siau-Cheng Khoo,et al.  Compiling inheritance using partial evaluation , 1991 .

[55]  P. Crégut Machines a environnement pour la reduction symbolique et l'evaluation partielle , 1991 .

[56]  Suresh Jagannathan,et al.  A foundation for an efficient multi-threaded scheme system , 1992, LFP '92.

[57]  Lars Ole Andersen,et al.  Self-applicable C Program Specialization , 1992, PEPM.

[58]  Margaret Montenyohl,et al.  Towards Efficient Compilation of a Dynamic Object-Oriented Language , 1992, PEPM.

[59]  Mitchell Wand,et al.  Essentials of programming languages , 2008 .

[60]  Flemming Nielson,et al.  Inference Systems for Binding Time Analysis , 1992, WSA.

[61]  Erik Ruf,et al.  Improving the Accuracy of Higher-Order Specialization using Control Flow Analysis , 1992, PEPM.

[62]  Karoline Malmkjær Predicting Properties of Residual Programs , 1992, PEPM.

[63]  Daniel Weise,et al.  Towards a New Perspective on Partial Evaluation , 1992, PEPM.

[64]  Marc Gengler,et al.  A Polyvariant Binding Time Analysis Handling Partially Known Values , 1992, WSA.

[65]  Jesper Jørgensen,et al.  Generating a compiler for a lazy language by partial evaluation , 1992, POPL '92.

[66]  Bernhard Rytz,et al.  A Polyvariant Binding Time Analysis , 1992, PEPM.

[67]  Flemming Nielson,et al.  Two-level functional languages , 1992, Cambridge tracts in theoretical computer science.

[68]  Denis Béchet Partial Evaluation of Interaction Nets , 1992, WSA.

[69]  Raman Srinivas Sundaresh Incremental computation via partial evaluation , 1992 .

[70]  William Pugh,et al.  Partial evaluation of high-level imperative programming languages with applications in hard real-time systems , 1992, POPL '92.

[71]  Charles Consel,et al.  A Programming Environment for Binding-time Based Partial Evaluators , 1992, ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation.

[72]  Anders Bondorf,et al.  Improving binding times without explicit CPS-conversion , 1992, LFP '92.

[73]  Carsten K. Gomard A self-applicable partial evaluator for the lambda calculus: correctness and pragmatics , 1992, TOPL.

[74]  Ken Kennedy,et al.  Procedure cloning , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[75]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[76]  Siau Cheng Khoo Parameterized partial evaluation principle and practice , 1993 .

[77]  Siau-Cheng Khoo,et al.  Parameterized partial evaluation , 1993, TOPL.

[78]  Erik Ruf Topics in online partial evaluation , 1993 .

[79]  Jens Palsberg,et al.  Binding-time analysis: abstract interpretation versus type inference , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[80]  Siau-Cheng Khoo,et al.  On-line & O(cid:11)-line Partial Evaluation: Semantic Speci(cid:12)cations and Correctness Proofs (cid:3) , 1993 .