A syntactic theory of sequential control
Theoretical Computer Science
On the expressive power of programming languages
ESOP '90 Selected papers from the symposium on 3rd European symposium on programming
Reasoning about programs in continuation-passing style
Lisp and Symbolic Computation - Special issue on continuations—part I
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
A Curry-Howard foundation for functional computation with control
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theories of programming languages
Theories of programming languages
Unchecked Exceptions Can Be Strictly More Powerful Than Call/CC
Higher-Order and Symbolic Computation
On Exceptions Versus Continuations in the Presence of State
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Lambda-My-Calculus: An Algorithmic Interpretation of Classical Natural Deduction
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
On Abstraction and the Expressive Power of Programming Languages
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Typed Exeptions and Continuations Cannot Macro-Express Each Other
ICAL '99 Proceedings of the 26th International Colloquium on Automata, Languages and Programming
Full abstraction for functional languages with control
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
A Fully Abstract Game Semantics of Local Exceptions
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
The logic and expressibility of simply-typed call-by-value and lazy languages
The logic and expressibility of simply-typed call-by-value and lazy languages
Combining algebraic effects with continuations
Theoretical Computer Science
Adding delimited and composable control to a production programming environment
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Abstract Machines for Game Semantics, Revisited
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
This paper studies the problem of expressing exceptions using first-class continuations in a functional-imperative language. The main result is that exceptions cannot be macro-expressed using first-class continuations and references (contrary to "folklore"). This is shown using two kinds of counterexample. The first consists of two terms which are equivalent with respect to contexts containing continuations and references, but which can be distinguished using exceptions. It is shown, however, that there are no such terms which do not contain callcc. However, there is a 驴1 sentence of first-order logic which is satisfied when interpreted in the domain of programs containing continuations and references but not satisfied in the domain of programs with exceptions and references. This is used to show that even when callcc is omitted from the source language, exceptions still cannot be expressed using continuations and references.