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.
Preview
Unable to display preview. Download preview PDF.
References
Anindya Banerjee, Olivier Danvy, and David A. Schmidt. A programming language workbench. Technical Report CIS-92-4, Kansas State University, Manhattan, Kansas, November 1991.
Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17:471–522, 1985.
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.
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.
Jan W. Klop. Combinatory Reduction Systems. Mathematical Centre Tracts 127. Mathematisch Centrum, Amsterdam, 1980.
Jan W. Klop. Term rewriting systems. Technical Report CS-R9073, CWI: Center for Mathematics and Computer Science, Amsterdam, 1990.
Joachim Lambek and Philip J. Scott. Introduction to Higher Order Categorical Logic, volume 7 of Cambridge studies in advanced mathematics. Cambridge University Press, 1986.
Peter J. Landin. A correspondence between ALGOL60 and Church's lambda notation. Communications of the ACM, 8:89–101 and 158–165, 1965.
Peter J. Landin. The next 700 programming languages. Communications of the ACM, 9(3):157–166, 1966.
Saunders Mac Lane. Categories for the Working Mathematician, volume 5 of Graduate Texts in Mathematics. Springer-Verlag, 1971.
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.
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.
Ian A. Mason and Carolyn L. Talcott. Equivalence in functional programming languages with effects. Journal of Functional Programming, 1(3):287–327, 1991.
Ian A. Mason and Carolyn L. Talcott. Inferring the equivalence of functional programs that mutate data. Theoretical Computer Science, 105(2):167–215, 1992.
Michael O'Donnell. Computing in Systems Described by Equations. Number 58 in Lecture Notes in Computer Science. Springer-Verlag, 1977.
Benjamin C. Pierce. Basic Category Theory for Computer Scientists. Foundation of Computing Series. The MIT Press, 1991.
Gordon D. Plotkin. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1:125–159, 1975.
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.
John C. Reynolds. The essence of Algol. In van Vliet, editor, International Symposium on Algorithmic Languages, pages 345–372, Amsterdam, 1982. North-Holland.
John C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Computer Science, Carnegie-Mellon University, Pittsburgh, Pennsylvania, 1988.
David A. Schmidt. The Structure of Typed Programming Languages. MIT Press, Cambridge, MA. To appear.
David A. Schmidt. Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Inc., 1986.
Robert D. Tennent. Language design methods based on semantic principles. Acta Informatica, 8:97–112, 1977.
Robert D. Tennent. Principles of Programming Languages. Prentice-Hall, Englewood Cliffs, New Jersey, 1981.
Robert D. Tennent. Semantics of Programming Languages. Prentice-Hall International, Englewood Cliffs, New Jersey, 1991.
David Watt. Programming Languages Concepts and Paradigms. Prentice-Hall, Englewood Cliffs, New Jersey, 1990.
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.
Author information
Authors and Affiliations
Editor information
Rights 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