skip to main content
10.1145/158511.158521acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Call by name, assignment, and the lambda calculus

Published:01 March 1993Publication History

ABSTRACT

We define an extension of the call-by-name lambda calculus with additional constructs and reduction rules that represent mutable variables and assignments. The extended calculus has neither a concept of an explicit store nor a concept of evaluation order; nevertheless, we show that programs in the calculus can be implemented using a single-threaded store. We also show that the new calculus has the Church-Rosser property and that it is a conservative extension of classical lambda calculus with respect to operational equivalence; that is, all algebraic laws of the functional subset are preserved.

References

  1. 1.H. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, 1984.Google ScholarGoogle Scholar
  2. 2.H.-J. Boehm. Side effects and aliasing can have simple axiomatic descriptions. A CM Transactions on Programming Languages and Systems, 7(4):637-655, October 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.E. Crank and M. Felleisen. Parameter-passing and the lambda-calculus. In Proc. 18th A CM Symposium on Principles of Programming Languages, pages 233-244, January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.M. Felleisen. On the expressive power of programming languages. In N. D. Jones, editor, ESOP '90, European Symposium on Programming, Lecture Notes in Computer Science 432, pages 134-151. Springer-Verlag, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.M. Felleisen and D. P. Friedman. A calculus for assignments in higher-order languages. In Proc. 14th A CM Symposium on Principles of Programming Languages, pages 314-325, January 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.M. Felleisen and R. Hieb. The revised report on the syntactic theories of sequential control and state. Technical Report Rice COMP TR89-100, Rice University, June 1989. To Appear in Theoretical Computer Science.Google ScholarGoogle Scholar
  7. 7.J. Field. A simple rewriting semantics for realistic imperative programs and its application to program analysis. In PEPM'92: A CM SIGPLAN Workshop on Partial Evaluation and Semantics.Based Program Manipulation, pages 98-107, June 1992. Yale University Research Report YALEU/DCS/RR-909.Google ScholarGoogle Scholar
  8. 8.J. GuzmAn and P. Hudak. Single-threaded polymorphic lambda calculus. In IEEE Symposium on Logic in Computer Science, pages 333-343, June 1990.Google ScholarGoogle ScholarCross RefCross Ref
  9. 9.C. A. R. Hoare, I. J. Hayes, He Jifeng, C. C. Morgan, A. W. Roscoe, J. W. Sanders, I. H. Sorensen, J. M. Spivey, and B. A. Sufrin. Laws of programming. Communications of the A CM, 30(8):672-686, August 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.P. Hudak and D. Robin. Mutable abstract datatypes - or- how to have your state and munge it too. Research Report YALEU/DCS/RR-914, Yale University, Department of Computer Science, July 1992.Google ScholarGoogle Scholar
  11. 11.I. Mason and C. Talcott. Programming, transforming, and proving with function abstractions and memories. In Automata, Languages, and Programming: 16th International Colloquium, Lecture Notes in Computer Science 372, pages 574-588. Springer-Verlag, 1989. Google ScholarGoogle Scholar
  12. 12.i. Mason and C. Talcott. Equivalence in functional languages with side effects. Journal of Functional Programming, 1(3):287-327, July 1991.Google ScholarGoogle ScholarCross RefCross Ref
  13. 13.M. Odersky. Observers for linear types. In B. Krieg- Briickner, editor, ESOP '92: 4th European Symposium on Programming, Rennes, France, Proceedings, Lecture Notes in Computer Science 582, pages 390-407. Springer-Verlag, February 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.M. Odersky and D. Robin. The unexpurgated callby-name, assignment, and the lambda-calculus. Research Report YALEU/DCS/RR-930, Department of Computer Science, Yale University, New Haven, Connecticut, October 1992.Google ScholarGoogle Scholar
  15. 15.G. D. Plotkin. Call-by-name, call-by-value, and the ,k-calculus. Theoretical Computer Science, 1:125-159, 1975.Google ScholarGoogle ScholarCross RefCross Ref
  16. 16.J. C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Carnegie Mellon University, June 1988.Google ScholarGoogle Scholar
  17. 17.D. Schmidt. Detecting global variables in denotational specifications. A CM Transactions on Programming Languages and Systems, 5(2):299-310, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.V. Swarup, U. S. Reddy, and E. ireland. Assignments for applicative languages. In J. Hughes, editor, Proc. 5th A CM Conf. on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science 523, pages 192-214. Springer-Verlag, August 1991. Google ScholarGoogle Scholar
  19. 19.j.-P. Talpin and P. Jouvelot. Type, effect and region reconstruction in polymorphic functional languages. In Workshop on Static Analysis of Equational, Functional, and Logic Programs, Bordeaux, Oct. 1991.Google ScholarGoogle Scholar
  20. 20.P. Wadler. Comprehending monads. In Proc. A CM Conf. on Lisp and Functional Programming, pages 61- 78, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.P. Wadler. Is there a use for linear logic? In Proc. Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 255-273, June 1991. SIG- PLAN Notices, Volume 26, Number 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.P. Wadler. The essence of functional programming. In Proc. 19th A CM Symposium on Principles of Programming Languages, pages 1-14, January 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Call by name, assignment, and the lambda calculus

        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
        • Published in

          cover image ACM Conferences
          POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
          March 1993
          510 pages
          ISBN:0897915607
          DOI:10.1145/158511

          Copyright © 1993 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 March 1993

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          POPL '93 Paper Acceptance Rate39of199submissions,20%Overall Acceptance Rate824of4,130submissions,20%

          Upcoming Conference

          POPL '25

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader