Abstract
To introduce the republication of “Definitional Interpreters for Higher-Order Programming Languages”, the author recounts the circumstances of its creation, clarifies several obscurities, corrects a few mistakes, and briefly summarizes some more recent developments.
Similar content being viewed by others
References
Reynolds, John C. Theories of Programming Languages. Cambridge University Press, Cambridge, England, 1998.
Reynolds, John C. Definitional interpreters for higher-order programming languages. In Proceedings of the ACM Annual Conference, volume 2, pages 717–740, Boston, Massachusetts, August 1972. ACM, New York. Reprinted as [3].
Reynolds, John C. Definitional interpreters for higher-order programming languages. Higher-Order and Symbolic Computation, 11(4):363–397, 1998.
Evans, Jr., Arthur. The lambda calculus and its relation to programming languages. In Proceedings of the ACM Annual Conference, volume 2, pages 714–716, Boston, Massachusetts, August, 1972. ACM, New York.
Morris, Jr., James H. Private communication. September, 1972.
Reynolds, John C. On the relation between direct and continuation semantics. In Jacques Loeckx, editor, Automata, Languages and Programming: 2nd Colloquium, volume 14 of Lecture Notes in Computer Science, pages 141–156, Saarbrücken, Germany, July 29-August 2, 1974. Springer-Verlag, Berlin.
Wadsworth, Christopher P. Private communication. August 30, 1972.
Wadsworth, Christopher P. Semantics and Pragmatics of the Lambda-Calculus. Ph. D. dissertation, Programming Research Group, Oxford University, Oxford, England, September 1971.
Landin, Peter J. A generalization of jumps and labels. Higher-Order and Symbolic Computation, 11(2):125–143, 1998. Originally a report for UNIVAC Systems Programming Research, dated August 29, 1965.
Thielecke, Hayo An introduction to Landin's “A generalization of jumps and labels”. Higher-Order and Symbolic Computation, 11(2):117–124, 1998.
Felleisen, Matthias Reflections on Landin's J-operator: A partly historical note. Computer Languages, 12(3/4):197–207, 1987.
Lucas, Peter and Walk, K. On the formal description of PL/I. Annual Review in Automatic Programming, 6(3):105–182, 1969.
Strachey, Christopher and Wadsworth, Christopher P. Continuations, a mathematical semantics for handling full jumps. Technical Monograph PRG-11, Programming Research Group, Oxford University Computing Laboratory, Oxford, England, January 1974.
Fischer, Michael J. Lambda-calculus schemata. Lisp and Symbolic Computation, 6(3-4):259–287, November 1993.
Reynolds, John C. The discoveries of continuations. Lisp and Symbolic Computation, 6(3-4):233–247, November 1993.
McCarthy, John, Brayton, R., Edwards, Daniel J., Fox, P., Hodes, L., Luckham, David C., Maling, K., Park, David M.R. and Russell. S. LISP I programmer's manual. Technical report, Computation Center and Research Laboratory of Electronics, Massachusetts Institute of Technology, Cambridge, Massachusetts, March 1, 1960.
McCarthy, John, Abrahams, Paul W., Edwards, Daniel J., Hart, Timothy P. and Levin, Michael I. LISP 1.5 Programmer's Manual. MIT Press, Cambridge, Massachusetts, 1962.
Landin, Peter J. The mechanical evaluation of expressions. The Computer Journal, 6(4):308–320, January 1964.
Steele Jr., Guy Lewis. RABBIT: A compiler for SCHEME (a study in compiler optimization). Report AI-TR- 474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
Sussman, Gerald Jay and Steele Jr., Guy Lewis SCHEME: An interpreter for extended lambda calculus. AI Memo 349, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, December 1975. Reprinted as [21].
Sussman, Gerald Jay and Steele Jr., Guy Lewis SCHEME: An interpreter for extended lambda calculus. Higher-Order and Symbolic Computation, 11(4):405–439, 1998.
Minamide, Yasuhiko, Morrisett, Greg and Harper, Robert. Typed closure conversion. In Conference Record of POPL '96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 271–283, St. Petersburg Beach, Florida, January 21-24, 1996. ACM Press, New York.
Shivers, Olin. Control-Flow Analysis of Higher-Order Languages or Taming Lambda. Ph. D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania, May 1991. Report CMU-CS-91-145.
Plotkin, Gordon D. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1(2):125–159, December 1975.
Sabry, Amr and Felleisen, Matthias. Reasoning about programs in continuation-passing style. Lisp and Symbolic Computation, 6(3-4):289–360, November 1993.
Meyer, Albert R. and Wand, Mitchell. Continuation semantics in typed lambda-calculi (summary). In Rohit Parikh, editor, Logic of Programs, volume 193 of Lecture Notes in Computer Science, pages 219–224, Brooklyn, New York, June 17-19, 1985. Springer-Verlag, Berlin.
Harper, RobertW., Duba, Bruce F. and MacQueen, David B. Typing first-class continuations in ML. Journal of Functional Programming, 3(4):465–484, October 1993.
Hatcliff, John and Danvy, Olivier. A generic account of continuation-passing styles. In Conference Record of POPL '94: 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 458–471, Portland, Oregon, January 17-21, 1994. ACM Press, New York.
Harper, Robert W. and Lillibridge, Mark. Polymorphic type assignment and CPS conversion. Lisp and Symbolic Computation, 6(3-4):361–379, November 1993.
Appel, Andrew W. Compiling with Continuations. Cambridge University Press, Cambridge, England, 1992.
Clinger, William, Friedman, Daniel P. and Wand, Mitchell. A scheme for a higher-level semantic algebra. In Maurice Nivat and John C. Reynolds, editors, Algebraic Methods in Semantics, pages 237–250. Cambridge University Press, Cambridge, England, 1985.
Kelsey, Richard, Clinger, William and Rees, Jonathan (editors). Revised5 report on the algorithmic language Scheme. Higher-Order and Symbolic Computation, 11(3):7–105, 1998.
Appel, Andrew W. and MacQueen, David B. Standard ML of New Jersey. In Jan Maluszyński and Martin Wirsing, editors, Programming Language Implementation and Logic Programming: 3rd International Symposium, PLILP'91, volume 528 of Lecture Notes in Computer Science, pages 1–13, Passau, Germany, August 26-28, 1991. Springer-Verlag, Berlin.
Griffin, Timothy G. A formulae-as-types notion of control. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 47–58, San Francisco, January 17-19, 1990. ACM Press, New York.
Murthy, Chetan. Extracting Constructive Content from Classical Proofs. Ph. D. dissertation, Department of Computer Science, Cornell University, Ithaca, New York, August 1990. Technical Report 90-1151.
Moggi, Eugenio. Notions of computation and monads. Information and Computation, 93(1):55–92, July 1991.
Filinski, Andrzej. Controlling Effects. Ph. D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania, May 1996. Report CMU-CS-96-119.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Reynolds, J.C. Definitional Interpreters Revisited. Higher-Order and Symbolic Computation 11, 355–361 (1998). https://doi.org/10.1023/A:1010075320153
Issue Date:
DOI: https://doi.org/10.1023/A:1010075320153
- operational semantics
- denotational semantics
- interpreter
- lambda calculus
- applicative language
- functional language
- metacircularity
- higher-order function
- defunctionalization
- closure
- call by value
- call by name
- continuation
- continuation-passing-style transformation
- LISP
- ISWIM
- PAL
- Scheme
- SECD machine
- J-operator
- escape
- assignment