TY - GEN
T1 - Exceptions, continuations and macro-expressiveness
AU - Laird, James
PY - 2002/3/14
Y1 - 2002/3/14
N2 - This paper studies the the problem of expressing exceptions using first-class continuations in a functional-imperative language. Themain result is that exceptions cannot be macro-expressed using first-class continuations and references (contrary to “folklore”). This is shown using two kinds of counter example. The first consists of two terms whichare 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 isomitted from the source language, exceptions still cannot be expressed using continuations and references.
AB - This paper studies the the problem of expressing exceptions using first-class continuations in a functional-imperative language. Themain result is that exceptions cannot be macro-expressed using first-class continuations and references (contrary to “folklore”). This is shown using two kinds of counter example. The first consists of two terms whichare 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 isomitted from the source language, exceptions still cannot be expressed using continuations and references.
UR - http://www.scopus.com/inward/record.url?scp=84957106137&partnerID=8YFLogxK
UR - http://dx.doi.org/10.1007/3-540-45927-8_10
U2 - 10.1007/3-540-45927-8_10
DO - 10.1007/3-540-45927-8_10
M3 - Chapter in a published conference proceeding
AN - SCOPUS:84957106137
SN - 9783540433637
T3 - Lecture Notes in Computer Science
SP - 133
EP - 146
BT - Programming Languages and Systems
A2 - Le Metayer, D.
PB - Springer Verlag
CY - Berlin, Germany
T2 - 11th European Symposium on Programming, ESOP 2002 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002
Y2 - 8 April 2002 through 12 April 2002
ER -