Efficient self-interpretation in lambda calculus
- 1 January 1992
- journal article
- research article
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 2 (3) , 345-364
- https://doi.org/10.1017/s0956796800000423
Abstract
We start by giving a compact representation schema for λ-terms, and show how this leads to an exceedingly small and elegant self-interpreter. We then define the notion of aself-reducer, and show how this too can be written as a small λ-term. Both the self-interpreter and the self-reducer are proved correct. We finally give a constructive proof for the second fixed point theorem for the representation schema. All the constructions have been implemented on a computer, and experiments verify their correctness. Timings show that the self-interpreter and self-reducer are quite efficient, being about 35 and 50 times slower than direct execution using a call-by-need reductions strategyKeywords
This publication has 5 references indexed in Scilit:
- Metacircularity in the polymorphic λ-calculusTheoretical Computer Science, 1991
- Theoretical Pearls: Self-interpretation in lambda calculusJournal of Functional Programming, 1991
- An inverse of the evaluation functional for typed lambda -calculusPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1991
- A partial evaluator for the untyped lambda-calculusJournal of Functional Programming, 1991
- Typed representation of objects by functionsACM Transactions on Programming Languages and Systems, 1989