Skip to main content

Partial continuations as the difference of continuations a duumvirate of control operators

  • Conference paper
  • First Online:
Book cover Programming Language Implementation and Logic Programming (PLILP 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 844))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. Olivier Danvy. On Listing List Prefixes. Lisp Pointers, 2(3–4):42–46, 1989.

    Google Scholar 

  3. Olivier Danvy and Andrzej Filinski. Abstracting Control. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 151–160, June 1990.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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).

    Google Scholar 

  6. Matthias Felleisen, Daniel P. Friedman, Bruce Duba, and John Merrill. Beyond Continuations. Technical Report 216, Indiana University, February 1987.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Christopher T. Haynes, Daniel P. Friedman, and Mitchell Wand. Obtaining Coroutines with Continuations. Comput. Lang., 11(3/4):143–153, 1986.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Gordon D. Plotkin. Call-by-Name, Call-by-Value and the λ-Calculus. Theoretical Computer Science, pages 125–159, 1975.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. John C. Reynolds. The Discoveries of Continuations. Lisp and Symbolic and Computation, Special Issue on Continuations, 6(3/4):233–248, November 1993.

    Google Scholar 

  17. Dorai Sitaram and Matthias Felleisen. Control Delimiters and Their Hierarchies. Lisp and Symbolic Computation, 3(1):67–99, 1990.

    Google Scholar 

  18. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manuel Hermenegildo Jaan Penjam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics