Results 1 
6 of
6
Comparing Control Constructs by Doublebarrelled CPS
 Higherorder and Symbolic Computation
, 2002
"... We investigate callbyvalue continuationpassing style transforms that pass two continuations. Altering a single variable in the translation of #abstraction gives rise to di#erent control operators: firstclass continuations; dynamic control; and (depending on a further choice of a variable) eithe ..."
Abstract

Cited by 17 (2 self)
 Add to MetaCart
We investigate callbyvalue continuationpassing style transforms that pass two continuations. Altering a single variable in the translation of #abstraction gives rise to di#erent control operators: firstclass continuations; dynamic control; and (depending on a further choice of a variable) either the return statement of C; or Landin's Joperator. In each case there is an associated simple typing. For those constructs that allow upward continuations, the typing is classical, for the others it remains intuitionistic, giving a clean distinction independent of syntactic details. Moreover, those constructs that make the typing classical in the source of the CPS transform break the linearity of continuation use in the target.
A typetheoretic foundation of delimited continuations. Higher Order Symbol
 Comput
, 2009
"... Abstract. There is a correspondence between classical logic and programming language calculi with firstclass continuations. With the addition of control delimiters, the continuations become composable and the calculi become more expressive. We present a finegrained analysis of control delimiters a ..."
Abstract

Cited by 14 (6 self)
 Add to MetaCart
Abstract. There is a correspondence between classical logic and programming language calculi with firstclass continuations. With the addition of control delimiters, the continuations become composable and the calculi become more expressive. We present a finegrained analysis of control delimiters and formalise that their addition corresponds to the addition of a single dynamicallyscoped variable modelling the special toplevel continuation. From a type perspective, the dynamicallyscoped variable requires effect annotations. In the presence of control, the dynamicallyscoped variable can be interpreted in a purely functional way by applying a storepassing style. At the type level, the effect annotations are mapped within standard classical logic extended with the dual of implication, namely subtraction. A continuationpassingstyle transformation of lambdacalculus with control and subtraction is defined. Combining the translations provides a decomposition of standard CPS transformations for delimited continuations. Incidentally, we also give a direct normalisation proof of the simplytyped lambdacalculus with control and subtraction.
Comparing Control Constructs by Typing Doublebarrelled CPS Transforms
 CW'01
, 2001
"... We investigate continuationpassing style transforms that pass two continuations. Altering a single variable in the translation of λabstraction gives rise to different control operators: firstclass continuations; dynamic control; and (depending on a further choice of a variable) either the return ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We investigate continuationpassing style transforms that pass two continuations. Altering a single variable in the translation of λabstraction gives rise to different control operators: firstclass continuations; dynamic control; and (depending on a further choice of a variable) either the return statement of C; or Landin's Joperator. In each case there is an associated simple typing. For those constructs that allow upward continuations, the typing is classical, for the others it remains intuitionistic, giving a clean distinction independent of syntactic details.
Exceptions, Continuations and MacroExpressiveness
 LNCS 2305
, 2002
"... This paper studies the dierences between exceptions and continuations via the problem of expressing exceptions using rstclass continuations in a functionalimperative language. The main result is that exceptions cannot be macroexpressed using rstclass continuations and references (contrary to ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
This paper studies the dierences between exceptions and continuations via the problem of expressing exceptions using rstclass continuations in a functionalimperative language. The main result is that exceptions cannot be macroexpressed using rstclass continuations and references (contrary to \folklore"). This is shown using two kinds of counterexample. The rst 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 rstorder logic which is satised when interpreted in the domain of programs containing continuations and references but not satised in the domain of programs with exceptions and references.
Program Logics for Sequential HigherOrder Control
"... We introduce a Hoare logic for higherorder functional languages with control operators such as callcc. The key idea is to build the assertion language and proof rules on the basis of types that generalise the standard types for control operators (for ’jumpingto’) with dual types (for ’beingjumpe ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
We introduce a Hoare logic for higherorder functional languages with control operators such as callcc. The key idea is to build the assertion language and proof rules on the basis of types that generalise the standard types for control operators (for ’jumpingto’) with dual types (for ’beingjumpedto’). This enables the assertion language to capture precisely the intensional and extensional effects of jumps by internalising rely/guarantee reasoning, leading to simple proof rules for callbyvalue PCF with callcc and/or nameabstraction. All new operators come with powerful associated axioms. We show that the logic allows specification and reasoning about nontrivial examples of using callcc. The logic matches exactly with the operational semantics of the target language (observational completeness), is relatively complete in Cook’s sense and allows efficient generation of characteristic formulae.
Constructive Classical Logic as CPScalculus
, 1999
"... We establish the CurryHoward isomorphism between constructive classical logic and CPScalculus. CPScalculus exactly means the target language of Continuation Passing Style(CPS) transforms. Constructive classical logic we refer to are LKT and LKQ introduced by Danos et al.(1993). Keywords: Const ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
We establish the CurryHoward isomorphism between constructive classical logic and CPScalculus. CPScalculus exactly means the target language of Continuation Passing Style(CPS) transforms. Constructive classical logic we refer to are LKT and LKQ introduced by Danos et al.(1993). Keywords: Constructive Classical Logic,CPScalculus,CPStransform,CPSsemantics 1. Introduction 1.1. What is Constructive Classical Logic? It has long been thought that classical logic cannot be put to use for computational purposes. It is because, in general, the normalization process for the the proof of classical logic has a lot of critical pairs. Classical logic we consider in this paper is Gentzen's sequentstyle classical logic (i.e., LK) and its variants. In this context, above fact is related to the nondeterministic behavior of cutelimination. Of course, by Gentzen's theorem, LK has a Strongly Normalizable(SN) cutelimination procedure. The problem is, it is not ChurchRosser(CR). Constructive ...