Skip to main content

A categorical interpretation of Landin's correspondence principle

  • Conference paper
  • First Online:
Mathematical Foundations of Programming Semantics (MFPS 1993)

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

Abstract

Many programming languages can be studied by desugaring them into an intermediate language, namely, the simply-typed λ-calculus. In this manner Landin and Tennent discovered a “correspondence” between the semantics of definition bindings and parameter bindings such that the semantics of free identifiers becomes independent of their mode of definition.

In this paper we consider programming languages with modules and we desugar modules into records. A categorical model for the simply-typed λ-calculus with records is then freely generated. The record construction becomes a tensor product, the lambda abstraction construction becomes a function space, and if the language satisfies the correspondence principle, then the categorical exponentiation diagram commutes. A converse result is also proved. The framework for defining the model is of interest because it defines a hierarchy of call-by-value λ-calculi, of which call-by-name is the weakest form of call-by-value calculus.

Applications to compiling are given.

Part of this work was supported by NSF under grant CCR-9102625.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anindya Banerjee, Olivier Danvy, and David A. Schmidt. A programming language workbench. Technical Report CIS-92-4, Kansas State University, Manhattan, Kansas, November 1991.

    Google Scholar 

  2. Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17:471–522, 1985.

    Google Scholar 

  3. Pierre-Louis Curien, Thérèse Hardin, and Jean-Jacques Lévy. Confluence properties of weak and strong calculi of explicit substitutions. Rapports de Recherche 1617, I.N.R.I.A., February 1992.

    Google Scholar 

  4. Matthias Felleisen and Robert Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 103(2):235–271, 1992.

    Google Scholar 

  5. Jan W. Klop. Combinatory Reduction Systems. Mathematical Centre Tracts 127. Mathematisch Centrum, Amsterdam, 1980.

    Google Scholar 

  6. Jan W. Klop. Term rewriting systems. Technical Report CS-R9073, CWI: Center for Mathematics and Computer Science, Amsterdam, 1990.

    Google Scholar 

  7. Joachim Lambek and Philip J. Scott. Introduction to Higher Order Categorical Logic, volume 7 of Cambridge studies in advanced mathematics. Cambridge University Press, 1986.

    Google Scholar 

  8. Peter J. Landin. A correspondence between ALGOL60 and Church's lambda notation. Communications of the ACM, 8:89–101 and 158–165, 1965.

    Google Scholar 

  9. Peter J. Landin. The next 700 programming languages. Communications of the ACM, 9(3):157–166, 1966.

    Google Scholar 

  10. Saunders Mac Lane. Categories for the Working Mathematician, volume 5 of Graduate Texts in Mathematics. Springer-Verlag, 1971.

    Google Scholar 

  11. David B. MacQueen. Modules for Standard ML. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 198–207, Austin, Texas, August 1984.

    Google Scholar 

  12. David B. MacQueen. Using dependent types to express modular structure. In Proceedings of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, pages 277–286, January 1986.

    Google Scholar 

  13. Ian A. Mason and Carolyn L. Talcott. Equivalence in functional programming languages with effects. Journal of Functional Programming, 1(3):287–327, 1991.

    Google Scholar 

  14. Ian A. Mason and Carolyn L. Talcott. Inferring the equivalence of functional programs that mutate data. Theoretical Computer Science, 105(2):167–215, 1992.

    Google Scholar 

  15. Michael O'Donnell. Computing in Systems Described by Equations. Number 58 in Lecture Notes in Computer Science. Springer-Verlag, 1977.

    Google Scholar 

  16. Benjamin C. Pierce. Basic Category Theory for Computer Scientists. Foundation of Computing Series. The MIT Press, 1991.

    Google Scholar 

  17. Gordon D. Plotkin. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1:125–159, 1975.

    Google Scholar 

  18. John C. Reynolds. GEDANKEN — a simple typeless language based on the principles of completeness and the reference concept. Communications of the ACM, 13:308–319, 1970.

    Google Scholar 

  19. John C. Reynolds. The essence of Algol. In van Vliet, editor, International Symposium on Algorithmic Languages, pages 345–372, Amsterdam, 1982. North-Holland.

    Google Scholar 

  20. John C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Computer Science, Carnegie-Mellon University, Pittsburgh, Pennsylvania, 1988.

    Google Scholar 

  21. David A. Schmidt. The Structure of Typed Programming Languages. MIT Press, Cambridge, MA. To appear.

    Google Scholar 

  22. David A. Schmidt. Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Inc., 1986.

    Google Scholar 

  23. Robert D. Tennent. Language design methods based on semantic principles. Acta Informatica, 8:97–112, 1977.

    Google Scholar 

  24. Robert D. Tennent. Principles of Programming Languages. Prentice-Hall, Englewood Cliffs, New Jersey, 1981.

    Google Scholar 

  25. Robert D. Tennent. Semantics of Programming Languages. Prentice-Hall International, Englewood Cliffs, New Jersey, 1991.

    Google Scholar 

  26. David Watt. Programming Languages Concepts and Paradigms. Prentice-Hall, Englewood Cliffs, New Jersey, 1990.

    Google Scholar 

  27. Stephen Weeks and Matthias Felleisen. On the orthogonality of assignments and procedures in algol. In Proceedings of the Twentieth Annual ACM Symposium on Principles of Programming Languages, pages 20–35, Charleston, South Carolina, January 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Stephen Brookes Michael Main Austin Melton Michael Mislove David Schmidt

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Banerjee, A., Schmidt, D.A. (1994). A categorical interpretation of Landin's correspondence principle. In: Brookes, S., Main, M., Melton, A., Mislove, M., Schmidt, D. (eds) Mathematical Foundations of Programming Semantics. MFPS 1993. Lecture Notes in Computer Science, vol 802. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58027-1_29

Download citation

  • DOI: https://doi.org/10.1007/3-540-58027-1_29

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58027-0

  • Online ISBN: 978-3-540-48419-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics