Author pages are created from data sourced from our academic publisher partnerships and public sources.
Share This Author
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
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
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.
Automatic Autoprojection of Recursive Equations with Global Variables and Abstract Data Types
Type-directed partial evaluation
- O. Danvy
- Computer SciencePOPL '96
- 1 November 1995
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
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
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
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
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
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.