2-Level λ-lifting

  • Flemming Nielson
  • Hanne R. Nielson
5. Implementation Of Programming Languages
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)


The process of λ-lifting (or bracket abstraction) translates expressions in a typed λ-calculus into expressions in a typed combinator language. This is of interest because it shows that the λ-calculus and the combinator language are equally expressive (as the translation from combinators to λ-expressions is rather trivial). This paper studies the similar problems for 2-level λ-calculi and 2-level combinator languages. The 2-level nature of the type system enforces a formal distinction between binding times, e.g. between computations at compile-time and computations at run-time. In this setting the natural formulations of 2-level λ-calculi and 2-level combinator languages turn out not to be equally expressive. The translation into 2-level λ-calculus is straight-forward but the 2-level λ-calculus is too powerful for λ-lifting to succeed. We then develop a restriction of the 2-level λ-calculus for which λ-lifting succeeds and that is as expressive as the 2-level combinator language.


Abstract Interpretation Position Environment Type Environment Functional Language Denotational Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    P.-L. Curien: Categorical Combinators, Sequential Algorithms and Functional Programming, Pitman, London, 1986.Google Scholar
  2. [2]
    H.B. Curry, R. Feys: Combinatory Logic, vol. 1, North-Holland, Amsterdam, 1958.Google Scholar
  3. [3]
    R.J.M.Hughes: Super-combinators, a new implementation method for applicative languages, Conf. Record of the 1982 ACM Symposium on LISP and functional programming, 1982.Google Scholar
  4. [4]
    T.Johnson: Lambda lifting — transforming programs to recursive equations, Functional Programming Languages and Computer Architecture, Springer LNCS 201, 1985.Google Scholar
  5. [5]
    R.Milne, C.Strachey: A Theory of Programming Language Semantics, Halstead Press, 1976.Google Scholar
  6. [6]
    F.Nielson: Abstract interpretation of denotational definitions, STACS 1986, Springer LNCS 210, 1986.Google Scholar
  7. [7]
    H.R.Nielson, F.Nielson: Pragmatic aspects of two-level denotational meta-languages, ESOP 1986, Springer LNCS 213, 1986.Google Scholar
  8. [8]
    H.R.Nielson, F.Nielson: Semantics directed compiling for functional languages, Proceedings of the 1986 ACM Conf. on LISP and Functional Programming, 1986.Google Scholar
  9. [9]
    F.Nielson: Strictness analysis and denotational abstract interpretation (extended abstract), Proceedings from the 1987 ACM Conf. on Principles of Programming Languages, 1987. A full version is to appear in Information and Computation.Google Scholar
  10. [10]
    F.Nielson: A formal type system for comparing partial evaluators, The Technical University of Denmark, 1987. To appear in proceedings from Workshop on Partial Evaluation and Mixed Computation, North Holland, 1988.Google Scholar
  11. [11]
    H.R.Nielson, F.Nielson: Automatic binding time analysis for a typed λ-calculus, to appear in Proceedings from the 1988 ACM Conf. on Principles of Programming Languages, 1988.Google Scholar
  12. [12]
    D.Schmidt: Static properties of partial reduction, Kansas State University, 1987. To appear in proceedings from Workshop on Partial Evaluation and Mixed Computation, North Holland, 1988.Google Scholar
  13. [13]
    M.Schoenfinkel: Über die Bausteine der mathematischen Logik, Mathematische Annalen, vol.92, 1924.Google Scholar
  14. [14]
    R.D.Tennent: Principles of Programming Languages, Prentice Hall, 1981.Google Scholar
  15. [15]
    D.A.Turner: A new implementation technique for applicative languages, Software — Practice and Experience, vol.9, 1979.Google Scholar
  16. [16]
    D.A.Turner: Another algorithm for bracket abstraction, The Journal of Symbolic Logic, vol.44, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Flemming Nielson
    • 1
  • Hanne R. Nielson
    • 2
  1. 1.Department of Computer ScienceThe Technical University of DenmarkLyngbyDenmark
  2. 2.Department of Mathematics and Computer ScienceAUCAalborgDenmark

Personalised recommendations