Abstract
We define a partial continuation as the difference of two continuations. We exhibit, in a single framework, several design choices and their impact on semantics. The ability of partial continuations to manipulate stack frames blurs the nature of dynamic extent; therefore, we introduce a new concept of prefixal extent that characterises the time during which a partial continuation can be reified. We propose two equivalent formal semantics for partial continuations: a context-rewriting system and a cps translation. Two new and realistic examples illustrate both the interest of partial continuations and the expressiveness of our choices.
Preview
Unable to display preview. Download preview PDF.
References
Charles Consel and Olivier Danvy. Tutorial Notes on Partial Evaluation. In Proceedings of the Twentieth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, Charleston, January 1993.
Olivier Danvy. On Listing List Prefixes. Lisp Pointers, 2(3–4):42–46, 1989.
Olivier Danvy and Andrzej Filinski. Abstracting Control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 151–160, June 1990.
Matthias Felleisen. The Theory and Practice of First-Class Prompts. In Proceedings of the Fifteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 180–190, January 1988.
Matthias Felleisen and Daniel P. Friedman. Control Operators, the SECD-Machine and the λ-Calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193–217, Amsterdam, 1986. Elsevier Science Publishers B.V. (North-Holland).
Matthias Felleisen, Daniel P. Friedman, Bruce Duba, and John Merrill. Beyond Continuations. Technical Report 216, Indiana University, February 1987.
Matthias Felleisen, Mitchell Wand, Daniel P. Friedman, and Bruce F. Duba. Abstract Continuations: A Mathematical Semantics for Handling Full Functional Jumps. In Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, pages 52–62, July 1988.
Christopher T. Haynes, Daniel P. Friedman, and Mitchell Wand. Obtaining Coroutines with Continuations. Comput. Lang., 11(3/4):143–153, 1986.
Robert Hieb and R. Kent Dybvig. Continuations and Concurrency. In Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, pages 128–136, March 1990.
Robert Hieb, R. Kent Dybvig, and Claude W. Anderson, III. Subcontinuations. Lisp and Symbolic and Computation, Special Issue on Continuations, 1(7):83–110, January 1994.
Luc Moreau and Daniel Ribbens. Sound Rules for Parallel Evaluation of a Functional Language with callcc. In ACM conference on Functional Programming and Computer Architecture (FPCA'93), pages 125–135, Copenhagen, June 1993. ACM.
Chetan R. Murthy. Control Operators, Hierarchies, and Pseudo-Classical Type Systems: A-Translation at Work. In Workshop on Continuations, pages 49–71. ACM Sigplan, June 1992.
Gordon D. Plotkin. Call-by-Name, Call-by-Value and the λ-Calculus. Theoretical Computer Science, pages 125–159, 1975.
Christian Queinnec. Value Transforming Style. In M. Billaud, P. Castéran, MM. Corsini, K. Musumbu, and A. Rauzy, editors, WSA '92—Workshop on Static Analysis, number 81–82 in Bigre, pages 20–28, Bordeaux (France), September 1992.
Christian Queinnec and Bernard Serpette. A Dynamic Extent Control Operator for Partial Continuations. In Proceedings of the Eighteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1991.
John C. Reynolds. The Discoveries of Continuations. Lisp and Symbolic and Computation, Special Issue on Continuations, 6(3/4):233–248, November 1993.
Dorai Sitaram and Matthias Felleisen. Control Delimiters and Their Hierarchies. Lisp and Symbolic Computation, 3(1):67–99, 1990.
Christopher Strachey and Christopher P. Wadsworth. A Mathematical Semantics for Handling Full Jumps. Technical Monography PRG-11, Oxford University Computing Laboratory, Programming Research Group, Oxford, England, 1974.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moreau, L., Queinnec, C. (1994). Partial continuations as the difference of continuations a duumvirate of control operators. In: Hermenegildo, M., Penjam, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1994. Lecture Notes in Computer Science, vol 844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58402-1_14
Download citation
DOI: https://doi.org/10.1007/3-540-58402-1_14
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58402-5
Online ISBN: 978-3-540-48695-4
eBook Packages: Springer Book Archive