Self-applicable Partial Evaluation for Pure Lambda Calculus.

Torben Ægidius Mogensen · 1992

Partial evaluation of an applied lambda calculus was done some years ago in the lambda-mix project. When moving to pure lambda calculus, some issues need to be considered, most importantly how we represent programs in pure lambda calculus. We start by presenting a compact representation schema for -terms and show how this leads to an exceedingly small and elegant self-interpreter. Partial evaluation is discussed, and it is shown that partial evaluation in the most general sense is uncomputable. There are several ways of restricting partial evaluation. We choose one of these, which requires explicit binding time information. Binding time annotations are discussed, and the representation schema is extended to include annotations. A partial evaluator is then constructed as an extension of the self-interpreter, and self-application is performed to produce possibly the smallest non-trivial compiler generator in the literature. It is shown that binding time analysis can be done by modifying ...

Read the paper · More papers on PaperTik