Skip to main content

Tradeoffs in the Intensional Representation of Lambda Terms

  • Conference paper
  • First Online:
Rewriting Techniques and Applications (RTA 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2378))

Included in the following conference series:

Abstract

Higher-order representations of objects such as programs, specifications and proofs are important to many metaprogramming and symbolic computation tasks. Systems that support such representations often depend on the implementation of an intensional view of the terms of suitable typed lambda calculi. Refined lambda calculus notations have been proposed that can be used in realizing such implementations. There are, however, choices in the actual deployment of such notations whose practical consequences are not well understood. Towards addressing this lacuna, the impact of three specific ideas is examined: the de Bruijn representation of bound variables, the explicit encoding of substitutions in terms and the annotation of terms to indicate their independence on external abstractions. Qualitative assessments are complemented by experiments over actual computations. The empirical study is based on λProlog programs executed using suitable variants of a low level, abstract machine based implementation of this language.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Abadi, L. Cardelli, P.-L. Curien, and J.-J. Lévy. Explicit substitutions. Journal of Functional Programming, 1(4):375–416, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  2. L. Aiello and G. Prini. An efficient interpreter for the lambda-calculus. The Journal of Computer and System Sciences, 23:383–425, 1981.

    Article  MATH  MathSciNet  Google Scholar 

  3. Z. Benaissa, D. Briaud, P. Lescanne, and J. Rouyer-Degli. λGU, a calculus of explicit substitutions which preserves strong normalization. Journal of Functional Programming, 6(5):699–722, 1996.

    MATH  MathSciNet  Google Scholar 

  4. N. de Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser Theorem. Indag. Math., 34(5):381–392, 1972.

    Google Scholar 

  5. R. L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.

    Google Scholar 

  6. G. Delzanno. Specifying and debugging security protocols via hereditary Harrop formulas and λProlog-a case-study. In Fifth International Symposium on Functional and Logic Programming. Springer Verlag LNCS vol. 2024, 2001.

    Chapter  Google Scholar 

  7. G. Dowek, A. Felty, H. Herbelin, G. Huet, C. Murthy, C. Parent, C. Paulin-Mohring, and B. Werner. The Coq proof assistant user’s guide. Rapport Techniques 154, INRIA, Rocquencourt, France, 1993.

    Google Scholar 

  8. G. Dowek, T. Hardin, and C. Kirchner. Higher-order unification via explicit substitutions. Information and Computation, 157:183–235, 2000.

    Article  MATH  MathSciNet  Google Scholar 

  9. R. Harper, F. Honsell, and G. Plotkin. A framework for defining logics. Journal of the Association for Computing Machinery, 40(1):143–184, January 1993.

    Google Scholar 

  10. F. Kamareddine and A. Ríos. Extending the λ-calculus with explicit substitution which preserves strong normalization into a confluent calculus on open terms. Journal of Functional Programming, 7(4):395–420, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  11. C. Liang. Compiler construction in higher order logic programming. In 4th International Symposium on Practical Aspects of Declarative Languages, pages 47–63. Springer Verlag LNCS No. 2257, 2002.

    Chapter  Google Scholar 

  12. D. Miller. A logic programming language with λ-abstraction, function variables, and simple unification. Journal of Logic and Computation, 1(4):497–536, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  13. D. Miller. Unification under a mixed prefix. Journal of Symbolic Computation, pages 321–358, 1992.

    Google Scholar 

  14. M. Mottl. Automating functional program transformation. MSc Thesis. Division of Informatics, University of Edinburgh, September 2000.

    Google Scholar 

  15. G. Nadathur. A fine-grained notation for lambda terms and its use in intensional operations. Journal of Functional and Logic Programming, 1999(2), March 1999.

    Google Scholar 

  16. G. Nadathur and D. Miller. An overview of λProlog. In K. A. Bowen and R. A. Kowalski, editors, Fifth International Logic Programming Conference, pages 810–827. MIT Press, August 1988.

    Google Scholar 

  17. G. Nadathur and D. J. Mitchell. System description: Teyjus—a compiler and abstract machine based implementation of λProlog. In Automated Deduction-CADE-16, pages 287–291. Springer-Verlag LNAI no. 1632, 1999.

    Google Scholar 

  18. G. Nadathur and D. S. Wilson. A notation for lambda terms: A generalization of environments. Theoretical Computer Science, 198(1–2):49–98, 1998.

    Article  MATH  MathSciNet  Google Scholar 

  19. C. Paulin-Mohring. Inductive definitions in the system Coq: Rules and properties. In Proceedings of the International Conference on Typed Lambda Calculi and Applications, pages 328–345. Springer-Verlag LNCS 664, 1993.

    Chapter  Google Scholar 

  20. L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lecture Notes in Computer Science. Springer Verlag, 1994.

    MATH  Google Scholar 

  21. F. Pfenning and C. Schürmann. System description: Twelf—a meta-logical framework for deductive systems. In Proceedings of the 16th International Conference on Automated Deduction, pages 202–206. Springer-Verlag LNAI 1632, 1999.

    Google Scholar 

  22. Z. Shao. Implementing typed intermediate language. In Proc. 1998 ACM SIG-PLAN International Conference on Functional Programming (ICFP’98), pages 313–323. ACM Press, September 1998.

    Google Scholar 

  23. D. Tarditi, G. Morrisett, P. Cheng, C. Stone, R. Harper, and P. Lee. TIL: A type-directed optimizing compiler for ML. In 1996 SIGPLAN Conference on Programming Language Design and Implementation, pages 181–192. ACM Press, 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Liang, C., Nadathur, G. (2002). Tradeoffs in the Intensional Representation of Lambda Terms. In: Tison, S. (eds) Rewriting Techniques and Applications. RTA 2002. Lecture Notes in Computer Science, vol 2378. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45610-4_14

Download citation

  • DOI: https://doi.org/10.1007/3-540-45610-4_14

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43916-5

  • Online ISBN: 978-3-540-45610-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics