The theory and practice of first-class prompts
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Control delimiters and their hierarchies
Lisp and Symbolic Computation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
A dynamic extent control operator for partial continuations
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the expressive power of programming languages
ESOP '90 Selected papers from the symposium on 3rd European symposium on programming
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lisp and Symbolic Computation
A generalization of exceptions and control in ML-like languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Final shift for call/cc:: direct implementation of shift and reset
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Exceptions, Continuations and Macro-expressiveness
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
DrScheme: a programming environment for Scheme
Journal of Functional Programming
A tail-recursive machine with stack inspection
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the static and dynamic extents of delimited continuations
Science of Computer Programming
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Implementation and use of the PLT scheme Web server
Higher-Order and Symbolic Computation
An Extensible State Machine Pattern for Interactive Applications
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Direct implementation of shift and reset in the MinCaml compiler
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Beyond static and dynamic scope
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Supporting dynamic, third-party code customizations in JavaScript using aspects
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
The two-state solution: native and serializable continuations accord
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A semantics for context-sensitive reduction semantics
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Delimited control in OCaml, abstractly and concretely
Theoretical Computer Science
Constraining delimited control with contracts
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Whalesong: running racket in the browser
Proceedings of the 9th symposium on Dynamic languages
Hi-index | 0.00 |
Operators for delimiting control and for capturing composable continuations litter the landscape of theoretical programming language research. Numerous papers explain their advantages, how the operators explain each other (or don't), and other aspects of the operators' existence. Production programming languages, however, do not support these operators, partly because their relationship to existing and demonstrably useful constructs - such as exceptions and dynamic binding - remains relatively unexplored. In this paper, we report on our effort of translating the theory of delimited and composable control into a viable implementation for a production system. The report shows how this effort involved a substantial design element, including work with a formal model, as well as significant practical exploration and engineering. The resulting version of PLT Scheme incorporates the expressive combination of delimited and composable control alongside dynamic-wind, dynamic binding, and exception handling. None of the additional operators subvert the intended benefits of existing control operators, so that programmers can freely mix and match control operators.