1992 · 130 citations · 38 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesTheory Of ComputationData-flow AnalysisType SystemsContinuation-passing StyleInverse TransformationsLambda CalculusProgram Transformation
Plotkin's λ-value calculus is sound but incomplete for reasoning about βeegr;-transformations on programs in continuation-passing style (CPS). To find a complete extension, we define a new, compactifying CPS transformation and an “inverse”mapping, un-CPS, both of which are interesting in their own right. Using the new CPS transformation, we can determine the precise language of CPS terms closed under β7eegr;-transformations. Using the un-CPS transformation, we can derive a set of axioms such that every equation between source programs is provable if and only if βη can prove the corresponding equation between CPS programs. The extended calculus is equivalent to an untyped variant of Moggi's computational λ-calculus.
38
Call-by-name, call-by-value and the λ-calculus
Gordon Plotkin · Theoretical Computer Science · 1975 · 1.2K citations
The Mechanical Evaluation of Expressions
P. J. Landin · The Computer Journal · 1964 · 932 citations · Full text
Computational lambda-calculus and monads
Eugenio Moggi · 2003 · 858 citations
Computing, Computer Science, Algebra +13
Definitional interpreters for higher-order programming languages
John Reynolds · 1972 · 668 citations
The essence of compiling with continuations
Cormac Flanagan, Amr Sabry, Bruce F. Duba et al. · 1993 · 533 citations