TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Lambda-dropping: transforming recursive equations into programs with block structure
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
De Bruijn's syntax and reductional equivalence of λ-terms
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Game semantics and abstract machines
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Super-combinators a new implementation method for applicative languages
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Demonstrating lambda calculus reduction
The essence of computation
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Journal of Functional Programming
A call-by-name lambda-calculus machine
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
Current implementations of non-strict functional languages rely on call-by-name reduction to implement the λ-calculus. An interesting alternative is head occurrence reduction, a reduction strategy specifically designed for the implementation of non-strict, purely functional languages. This work introduces the very lazy λ-calculus, which allows a systematic description of this approach. It is not based on regular β-reduction but a generalised rewriting rule called γ-reduction that requires fewer reductions to obtain useful results from a term. It therefore promises more efficient program execution than conventional execution models. To demonstrate the applicability of the approach, an adaptation of the Pointer Abstract Machine (PAM) is specified that implements the very lazy λ-calculus and constitutes a foundation for a new class of efficient functional language implementations.