John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional...

Post on 01-Aug-2018

227 views 0 download

transcript

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