john reynolds, definitional interpreters for higher … · john reynolds, definitional...

45
John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh Papers We Love, 18 October 2016

Upload: hakhue

Post on 01-Aug-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

John Reynolds,Definitional Interpreters forHigher-Order Programming

Languages

Philip WadlerUniversity of Edinburgh

Papers We Love, 18 October 2016

Page 2: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 3: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 4: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

Some other Papers I Love

Page 5: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

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.

Page 6: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

John McCarthy presents Recursive Functions of

Symbolic Expressions and Their Computation by

Machine, Part I, CACM 3(4):184—195, April 1960.

Page 7: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

Philip Wadler explains ‘Propositions as Types’, CACM, 58(12):75—84,

December 2015.

Page 8: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

The Papers

Page 9: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

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.

Page 10: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 11: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 12: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 13: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 14: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 15: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

Definitional Interpreters for Higher-Order Programming

Languages

Page 16: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 17: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

I IIIIIIV

Page 18: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 19: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 20: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 21: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

I A meta-circular interpreter

Page 22: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

Types: Syntax

Page 23: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

Types: Semantics

Page 24: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 25: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 26: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 27: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

IIDefunctionalisation

Page 28: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 29: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 30: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 31: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 32: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

IIIContinuations

Page 33: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 34: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 35: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 36: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 37: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

IVContinuations

with higher-order functions(Continuation-Passing Style)

Page 38: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 39: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 40: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

VEscape expressions(Scheme’s call/cc)

Page 41: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 42: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 43: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh

VIAssignment

Page 44: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh
Page 45: John Reynolds, Definitional Interpreters for Higher … · John Reynolds, Definitional Interpreters for Higher-Order Programming Languages Philip Wadler University of Edinburgh