John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional...
Transcript of John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional...
John Reynolds,Definitional Interpreters forHigher-Order Programming
Languages
Philip WadlerUniversity of Edinburgh
Papers We Love, 18 October 2016
Some other Papers I Love
John McCarthy, Toward a Mathematical Science of Computation, IFIP Congress, pages 21–28, 1962.
Peter Landin, The Next 700 Programming Languages, CACM, 9(3):157–166, March 1966.
Gordon Plotkin, Call-by-name, Call-by-value, and the Lambda Calculus, TCS 1:125–159, 1975.
John McCarthy presents Recursive Functions of
Symbolic Expressions and Their Computation by
Machine, Part I, CACM 3(4):184—195, April 1960.
Philip Wadler explains ‘Propositions as Types’, CACM, 58(12):75—84,
December 2015.
The Papers
John Reynolds, Definitional Interpreters for Higher-Order Programming Languages, in Proceedings of the ACM Annual Conference, Volume 2, pages 717—740, August 1972.
John Reynolds, Definitional Interpreters for Higher-Order Programming Languages, in Higher-Order and Symbolic Computation, 11(4):363—397, 1998.
John Reynolds, Definitional Interpreters Revisited, in Higher-Order and Symbolic Computation, 11(4):355—361, 1998.
John Reynolds, The Discoveries of Continuations, in Lisp and Symbolic Computation, 6:233—248, 1993.
Definitional Interpreters for Higher-Order Programming
Languages
I IIIIIIV
I A meta-circular interpreter
Types: Syntax
Types: Semantics
IIDefunctionalisation
IIIContinuations
IVContinuations
with higher-order functions(Continuation-Passing Style)
VEscape expressions(Scheme’s call/cc)
VIAssignment