Embedding continuations in procedural objects
- 1 October 1987
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 9 (4), 582-598
- https://doi.org/10.1145/29873.30392
Abstract
Continuations, when available as first-class objects, provide a general control abstraction in programming languages. They liberate the programmer from specific control structures, increasing programming language extensibility. Such continuations may be extended by embedding them in procedural objects. This technique is first used to restore a fluid environment when a continuation object is invoked. We then consider techniques for constraining the power of continuations in the interest of security and efficiency. Domain mechanisms, which create dynamic barriers for enclosing control, are implemented using fluids. Domains are then used to implement an unwind-protect facility in the presence of first-class continuations. Finally, we present two mechanisms, wind-unwind and dynamic-wind, that generalize unwind-protect.Keywords
This publication has 10 references indexed in Scilit:
- Logic continuationsThe Journal of Logic Programming, 1987
- Abstracting timed preemption with enginesComputer Languages, 1987
- Obtaining coroutines with continuationsComputer Languages, 1986
- Revised 3 report on the algorithmic language schemeACM SIGPLAN Notices, 1986
- Hygienic macro expansionPublished by Association for Computing Machinery (ACM) ,1986
- Programming with ContinuationsPublished by Springer Nature ,1984
- Shallow binding in Lisp 1.5Communications of the ACM, 1978
- Viewing control structures as patterns of passing messagesArtificial Intelligence, 1977
- GEDANKEN—a simple typeless language based on the principle of completeness and the reference conceptCommunications of the ACM, 1970
- Correspondence between ALGOL 60 and Church's Lambda-notationCommunications of the ACM, 1965