skip to main content
article
Free Access

Lambda calculus schemata

Published:01 January 1972Publication History
Skip Abstract Section

Abstract

A lambda calculus schema is an expression of the lambda calculus augmented by uninterpreted constant and function symbols and thus is an abstraction of programming languages such as LISP which permit functions to be passed to or returned from other functions. We then consider two natural implementation strategies: the retention strategy in which all variable bindings are retained until no longer needed (implying the use of some sort of garbage collected store) and the deletion strategy, modelled after the usual stack implementation of ALGOL-60, in which variable bindings are destroyed when control leaves the procedure (or block) in which they were created. Berry shows that the deletion strategy implementation is not “correct” for a wide class of languages in the sense that it is not equivalent to natural extensions of the copy rule of ALGOL to such languages, whereas the retention strategy is correct in that sense. We show, however, that no real power is lost in restricting oneself to a deletion strategy implementation, for any program can be translated into an equivalent one which will work correctly under such an implementation. The proof makes no use of the particular primitive functions and data of the language and hence is true of the corresponding schemata under all interpretations.

References

  1. 1 Berry, D.M., "Introduction to Oregano," SIGPLAN Notices 6,2 (February 1971), 171-190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Berry, D.M., "Block Structure: Retention or Deletion," Proceedings of the Third Annual ACM Symposium on Theory of Computing (1971), 86-100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Church, A., The Calculi of Lambda Conversion, Princeton, 1941. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Cole, S.N., "Pushdown Store Machines and Real-Time Computation," ACM Symposium on Theory of Computing (1969), 233-245. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Dijkstra, E.W., "Recursive Programming," in Programming Systems and Languages, S. Rosen, McGraw-Hill, N.Y. 1967.Google ScholarGoogle Scholar
  6. 6 Evans, A., "PAL - A Language Designed for Teaching Programming Linguistics," Proceedings of the ACM 23rd National Conference, August 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Ginsburg, S., Greibach, S., and Harrison, M., "One-Way Stack Automata," JACM 14,2 (April 1967), 389-418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Henhapl, W. and Jones, C.D., "The Block Concept and Some Possible Implementations, with Proofs of Equivalence," TR 25.104, IBM Vienna, (April 1970).Google ScholarGoogle Scholar
  9. 9 Hewitt, C., "More Comparative Schematology," MIT Project MAC, Artificial Intelligence Memo No. 207 (August 1970).Google ScholarGoogle Scholar
  10. 10 Landin, P.J., "The Mechanical Evaluation of Expressions," Comput. J. 6,4 (January 1964).Google ScholarGoogle ScholarCross RefCross Ref
  11. 11 McCarthy, J. et al., The LISP 1.5 Programmers Manual, MIT Press (1963). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 McCarthy, J., "A Basis for a Mathematical Theory of Computation," in Computer Programming and Formal Systems, P. Braffort and D. Hirschberg, ed., North-Holland, Amsterdam, 1963.Google ScholarGoogle Scholar
  13. 13 Moses, J., "The Function of FUNCTION in LISP (or, Why the FUNARG Problem Should be Called the Environment Problem)," SIGSAM Bulletin No. 15 (July 1970). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Randell, B. and Russell, L.J., Algol 60 Implementation, Academic Press, New York, 1964. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Lambda calculus schemata

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 7, Issue 1
          Proceedings of ACM conference on Proving assertions about programs
          January 1972
          211 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/942578
          Issue’s Table of Contents
          • cover image ACM Conferences
            Proceedings of ACM conference on Proving assertions about programs
            January 1972
            215 pages
            ISBN:9781450378918
            DOI:10.1145/800235

          Copyright © 1972 Author

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 January 1972

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader