Three Steps for the CPS Transformation ∗ (detailed abstract)
@inproceedings{Danvy1992ThreeSF, title={Three Steps for the CPS Transformation ∗ (detailed abstract)}, author={Olivier Danvy}, year={1992} }
Transforming a �-term into continuation-passing style (CPS) might seem mystical at first, but in fact it can be characterized by three separate aspects: • The values of all intermediate applications are given a name. • The evaluation of these applications is sequentialized based on a traversal of their syntax tree. This traversal mimics the reduction strategy. • The resulting term is equipped with a continuation — a �-abstraction whose application to intermediate values yields the final result…
No Paper Link Available
One Citation
Dependence-driven delimited CPS transformation for JavaScript
- Computer ScienceGPCE
- 2016
This paper proposes an alternative strategy in which a delimited CPS transformation that operates on a Program Dependence Graph instead to find the limits of each continuation.
References
SHOWING 1-10 OF 18 REFERENCES
Representing Control: A Study of the CPS Transformation
- Computer ScienceMath. Struct. Comput. Sci.
- 1992
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.
Abstracting control
- Computer ScienceLISP and Functional Programming
- 1990
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.
Lambda calculus schemata
- Computer ScienceLISP Symb. Comput.
- 1993
A lambda-calculus schema is an expression of the lambda calculus augmented by uninterpreted constant and operator symbols. It is an abstraction of programming languages such as LISP which permit…
Deriving Target Code as a Representation of Continuation Semantics
- Computer ScienceTOPL
- 1982
Reynolds' technique for deriving interpreters is extended to derive compilers from continuation semantics to simplify the semantics of a program phrase and build a machine to interpret the terms.
Definitional interpreters for higher-order programming languages
- Computer ScienceACM '72
- 1972
This work considers the definition of a simple applicative programming language by means of an interpreter written in a similar language, and considers the treatment of imperative features such as jumps and assignment.
An evaluation semantics for classical proofs
- Computer Science[1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science
- 1991
It is shown how to interpret classical proofs as programs in a way that agrees with the well-known treatment of constructive proofs as programs and moreover extends it to give a computational meaning…
Correctness of Procedure Representations in Higher-Order Assembly Language
- Computer ScienceMFPS
- 1991
Higher-order assembly language (HOAL) generalizes combinator-based target languages by allowing free variables in terms to play the role of registers, and the notion of a λ-representation is introduced, which is an abstract binding operation, and it is proved that the correctness of a compiler from a tiny language into HOAL is correct.
Compiling with Continuations
- Computer Science
- 1991
This book shows how continuation-passing style is used as an intermediate representation to perform optimizations and program transformations to create practical optimizing compilers for modern languages like ML.