• Publications
  • Influence
Abstracting control
TLDR
This article investigates an alternative formulation of continuations, exploiting the latent expressive power of the standard continuation-passing style (CPS) instead of introducing yet other new concepts, and describes an improved conversion into applicative-order CPS.
Representing Control: A Study of the CPS Transformation
TLDR
It is shown that by appropriate η-expansion of Fisher and Plotkin's two-pass equational specification of the CPS transform, a static and context-free separation of the result terms into “essential” and “administrative” constructs is obtained.
A Functional Abstraction of Typed Contexts
TLDR
Making functional control abstractions first-class offers a new area in programming which this paper explores, and an extension towards gaining control over embedding contexts is extended.
Type-directed partial evaluation
  • O. Danvy
  • Computer Science
    POPL '96
  • 1 November 1995
TLDR
This paper bridges partial evaluation and ¿-calculus normalization through higher-order abstract syntax, and touches upon parametricity, proof theory, and type theory (including subtyping and coercions), compiler optimization, and rut-time code generation (including decompilation).
A functional correspondence between evaluators and abstract machines
TLDR
The gap between functional evaluators and abstract machines for the λ-calculus is bridged using closure conversion, transformation into continuation-passing style, and defunctionalization, and the Categorical Abstract Machine is considered.
Relational Reasoning about Functions and Nondeterminism
TLDR
A uniform, relational proof style for operational arguments about program equivalences is explored, improves and facilitates many previously given proofs, and it is used to establish new proof rules for reasoning about term contexts, recursion, and nondeterminism in higher-order programming languages.
A concrete framework for environment machines
TLDR
Back to Curien's original calculus of closures (an early calculus with explicit substitutions), it is extended minimally so that it can also express one-step reduction strategies, and a series of environment machines are derived from the specification of two one- step reduction strategies for the lambda-calculus.
Refocusing in Reduction Semantics
TLDR
The construction of a refocus function shows how to mechanically obtain an abstract machine out of a reduction semantics, which was done previously on a case-by-case basis.
Defunctionalization at work
TLDR
Practical applications of defunctionalization are studied and new connections between seemingly unrelated higher-order and first-order specifications and between their correctness proofs are uncovered.
...
...