A Self-Applicable Partial Evaluator for the Lambda Calculus

Neil D. Jones, Carsten K. Gomard, Anders Bondorf, Olivier Danvy, Torben Æ. Mogensen. A Self-Applicable Partial Evaluator for the Lambda Calculus. In 1990 Internation Conference on Computer Languages, March 12-15 1990, New Orleans, Louisiana, USA. pages 49-58, IEEE Computer Society, 1990. [doi]


A description is given of theoretical and a few practical aspects of an implemented self-applicable partial evaluator for the call by value untyped lambda calculus with constants, conditionals, and a fixed point operator. A partial evaluator that is both high-order and self-applicable is also described. A solution to the problem of binding time analysis is presented. The partial evaluator is simple, completely automatic, and implemented in a side-effect free subset of Scheme. It has been used to compile, to generate compilers, and to generate a compiler generator.