Abstract
Relational interpretations of type systems are a useful tool for establishing properties of programming languages. For languages with recursive types the existence of a relational interpretation is often difficult to establish. The most well-known approach is to pass to a domain theoretic model of the language, using the structure of the domain to define a suitable system of relations. Here we study the construction of relational interpretations for an ML-like language with recursive functions and recursive types in a purely operational setting. The construction is an adaptation of results of Pitts on relational properties of domains to an operational setting, making use of techniques introduced by Mason, Smith, and Talcott for proving operational equivalence of expressions. To illustrate the method we give a relational proof of correctness of the continuation-passing transformation used in some compilers for functional languages.
Preview
Unable to display preview. Download preview PDF.
References
Martin Abadi, Luca Cardelli, Benjamin Pierce, and Gordon Plotkin. Dynamic typing in a statically typed language. ACM Transactions on Programming Languages and Systems, 13(2):237–268, April 1991.
Lars Birkedal and Robert Harper. Relational interpretations of recursive types in an operational setting. Unpublished manuscript.
William Clinger and Jonathan Rees. Revised4 report on the algorithmic language Scheme. LISP Pointers, IV(3):1–55, July-Sep. 1991.
Bruce Duba, Robert Harper, and David MacQueen. Typing first-class continuations in ML. In Eighteenth ACM Symposium on Principles of Programming Languages, January 1991.
Andrzej Filinski. Controlling Effects. CMU-CS-96-119, School of Computer Science, Carnegie Mellon University, May 1996.
Michael J. Fischer. Lambda-calculus schemata. LISP and Symbolic Computation, 6(3/4):259–288, November 1993.
Peter Freyd. Algebraically complete categories. In A. Carboni, M. C. Pedicchio, and G. Rosolini, editors, Category Theory. Proceedings, Como 1990, volume 1488 of Lecture Notes in Mathematics, pages 95–104. Springer-Verlag, 1990.
Peter Freyd. Recursive types reduced to inductive types. In Proceedings of the fifth IEEE Conference on Logic in Computer Science, pages 498–507, 1990.
Peter Freyd. Remarks on algebraically compact categories. In M. P. Fourman, P.T. Johnstone, and A. M. Pitts, editors, Applications of Categories in Computer Science. Proceedings of the LMS Symposium, Durham 1991, volume 177 of London Mathematical Society Lecture Note Series, pages 95–106. Cambridge University Press, 1991.
Jean-Yves Girard. Interprétation Fonctionnelle et Élimination des Coupures dans l'Arithmétique d'Ordre Supérieure. PhD thesis, Université Paris VII, 1972.
Carl A. Gunter. Semantics of Programming Languages. Structures and Techniques. MIT Press, 1992.
Robert Harper, Bruce Duba, and David MacQueen. Typing first-class continuations in ML. Journal of Functional Programming, 3(4):465–484, October 1993.
D. J. Howe. Equality in lazy computation systems. In 4th Annual Symposium on Logic in Computer Science, pages 198–203. IEEE Computer Society Press, Washington, 1989.
Søren Lassen. Relational reasoning about contexts. Unpublished manuscript.
Ian A. Mason, Scott F. Smith, and Carolyn L. Talcott. From operational semantics to domain theory. Information and Computation, 1995. To Appear.
Albert R. Meyer and Mitchell Wand. Continuation semantics in typed lambda calculi (summary). In Rohit Parikh, editor, Logics of Programs, volume 193 of Lecture Notes in Computer Science, pages 219–224. Springer-Verlag, 1985.
Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. MIT Press, 1990.
John C. Mitchell. Type systems for programming languages. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Vol. B, Formal Models and Semantics, chapter 8, pages 366–458. Elsevier Science Publishers B.V., 1990.
John C. Mitchell. Foundations for Programming Languages. Foundations of Computing. MIT Press, 1996.
James H. Morris. Lambda Calculus Models of Programming Languages. PhD thesis, MIT, 1968.
Andrew M. Pitts. Operationally-based theories of program equivalence. In In Proc. of Summer School on Semantics and Logics of Computation. ESPRIT CLiCSII. University of Cambridge. Isaac Newton Institute for Mathematical Sciences., September 1995.
Andrew M. Pitts. Relational properties of domains. Information and Computation, 127(2):66–90, June 1996.
Gordon Plotkin. Call-by-name, call-by-value, and the lambda calculus. Theoretical Computer Science, 1:125–159, 1975.
Gordon Plotkin. LCF considered as a programming language. Theoretical Computer Science, 5:223–257, 1977.
John C. Reynolds. On the relation between direct and continuation semantics. In J. Loeckx, editor, Proceedings of the Second Colloquium on Automata, Languages and Programming, Saarbrücken, volume 174 of Lecture Notes in Computer Science, pages 141–156. Springer-Verlag, 1974.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Birkedal, L., Harper, R. (1997). Relational interpretations of recursive types in an operational setting (Summary). In: Abadi, M., Ito, T. (eds) Theoretical Aspects of Computer Software. TACS 1997. Lecture Notes in Computer Science, vol 1281. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014563
Download citation
DOI: https://doi.org/10.1007/BFb0014563
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63388-4
Online ISBN: 978-3-540-69530-1
eBook Packages: Springer Book Archive