Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Co-induction in relational semantics
Theoretical Computer Science
Implementing functional languages
Implementing functional languages
Space-efficient closure representations
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Lambda, the ultimate label or a simple optimizing compiler for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Let-floating: moving bindings to give faster programs
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Lightweight closure conversion
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Super-combinators a new implementation method for applicative languages
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
A type-based escape analysis for functional languages
Journal of Functional Programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Lambda-Lifting in Quadratic Time
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Hi-index | 0.00 |
We present a formal and general specification of lambda lifting and prove its correctness with respect to an operational semantics. Lambda lifting is a program transformation which eliminates free variables from functions by introducing additional formal parameters to function definition and additional actual parameters to function calls. This operation supports the transformation from a lexically-structured functional program into a set of recursive equations. Existing results provide specific algorithms with no flexibility, no general specification, and only limited correctness results. Our work provides a general specification of lambda lifting (and related operations) which supports flexible translation strategies which may result in new implementation techniques. Our work also supports a simple framework in which the interaction of lambda lifting and other optimizations can be studied and from which new algorithms might be obtained.