ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Memory allocation and higher-order functions
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Embedding continuations in procedural objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Representing control in the presence of first-class continuations
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Typing first-class continuations in ML
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Back to direct style II: first-class continuations
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
A tractable Scheme implementation
Lisp and Symbolic Computation
The implementation of PC Scheme
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Implementation Strategies for First-Class Continuations
Higher-Order and Symbolic Computation
Continuations: A Mathematical Semantics for Handling FullJumps
Higher-Order and Symbolic Computation
An efficient environment allocation scheme in an interpreter for a lexically-scoped LISP
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Block structure (Extended Abstract): Retention or deletion?
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
The Occurrence of Continuation Parameters in CPS Terms
The Occurrence of Continuation Parameters in CPS Terms
Rabbit: A Compiler for Scheme
The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages
Proving Syntactic Properties of Exceptions in an Ordered Logical Framework
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
A First-Order One-Pass CPS Transformation
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
We present the first formalization of implementation strategies for first-class continuations. The formalization hinges on abstract machines for continuation-passing style (CPS) programs with a special treatment for the current continuation, accounting for the essence of first-class continuations. These abstract machines are proven equivalent to a standard, substitution-based abstract machine. The proof techniques work uniformly for various representations of continuations. As a byproduct, we also present a formal proof of the two folklore theorems that one continuation identifier is enough for second-class continuations and that second-class continuations are stackable. A large body of work exists on implementing continuations, but it is predominantly empirical and implementation-oriented. In contrast, our formalization abstracts the essence of first-class continuations and provides a uniform setting for specifying and formalizing their representation.