On Exceptions Versus Continuations in the Presence of State

  • Hayo Thielecke
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1782)


We compare the expressive power of exceptions and continuations when added to a language with local state in the setting of operational semantics. Continuations are shown to be more expressive than exceptions because they can cause a function call to return more than once, whereas exceptions only allow discarding part of the calling context.


Induction Hypothesis Operational Semantic Expressive Power Calling Context Downward Continuation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    Andrew Appel, David MacQueen, Robin Milner, and Mads Tofte. Unifying exceptions with constructors in Standard ML. Technical Report ECS LFCS 88 55, Laboratory for Foundations of Computer Science, University of Edinburgh, June 1988.Google Scholar
  2. [2]
    Carl Bruggeman, Oscar Waddell, and R. Kent Dybvig. Representing control in the presence of one-shot continuations. ACM SIGPLAN Notices, 31(5):99–107, May 1996.CrossRefGoogle Scholar
  3. [3]
    Matthias Felleisen. On the expressive power of programming languages. In Science of Computer Programming, volume 17, pages 35–75, 1991.zbMATHCrossRefMathSciNetGoogle Scholar
  4. [4]
    Andrzej Filinski. Linear continuations. In Proceedings of the Nineteenth Annual ACM Symposium on Principles of Programming Languages, 1992.Google Scholar
  5. [5]
    Carl A. Gunter, Didier Rémy, and Jon G. Riecke. A generalization of exceptions and control in ML-like languages. In Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture (FPCA’95), pages 12–23, La Jolla, California, June 25–28, 1995. ACM SIGPLAN/SIGARCH and IFIP WG2.8, ACM Press.Google Scholar
  6. [6]
    Peter J. Landin. A generalization of jumps and labels. Report, UNIVAC Systems Programming Research, August 1965.Google Scholar
  7. [7]
    Peter J. Landin. A generalization of jumps and labels. Higher-Order and Symbolic Computation, 11(2), 1998. Reprint of [6].Google Scholar
  8. [8]
    Mark Lillibridge. Exceptions are strictly more powerful than Call/CC. Technical Report CMU-CS-95-178, Carnegie Mellon University, July 1995.Google Scholar
  9. [9]
    Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML (Revised). MIT Press, 1997.Google Scholar
  10. [10]
    John C. Reynolds. Theories of Programming Languages. Cambridge University Press, 1998.Google Scholar
  11. [11]
    Jon G. Riecke and Hayo Thielecke. Typed exceptions and continuations cannot macro-express each other. In Jirí Wiedermann, Peter van Emde Boas, and Mogens Nielsen, editors, Procedings ICALP’ 99, volume 1644 of LNCS, pages 635–644. Springer Verlag, 1999.Google Scholar
  12. [12]
    Dorai Sitaram and Matthias Felleisen. Reasoning with continuations II: full abstraction for models of control. In M. Wand, editor, Lisp and Functional Programming. ACM, 1990.Google Scholar
  13. [13]
    Guy L. Steele. Common Lisp: the Language. Digital Press, 1990.Google Scholar
  14. [14]
    Guy L. Steele and Richard P. Gabriel. The evolution of Lisp. In Richard L. Wexelblat, editor, Proceedings of the Conference on History of Programming Languages, volume 28(3) of ACM Sigplan Notices, pages 231–270, New York, NY, USA, April 1993. ACM Press.Google Scholar
  15. [15]
    Mitchell Wand and Dino P. Oliva. Proving the correctness of storage representations. In 1992 ACM Conferenc on Lisp and Functional Programming, pages 151–160. ACM, ACM, August 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Hayo Thielecke
    • 1
  1. 1.Department of Computer Science Queen Mary and Westfield CollegeUniversity of LondonLondonUK

Personalised recommendations