Results 1 
8 of
8
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 18 (5 self)
 Add to MetaCart
(Show Context)
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 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 18 (2 self)
 Add to MetaCart
(Show Context)
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.
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.
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 6 (3 self)
 Add to MetaCart
(Show Context)
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 6 (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 ...
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 6 (0 self)
 Add to MetaCart
(Show Context)
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.
A typetheoretic foundation of . . .
, 2004
"... There is a correspondence between classical logic and programming language calculi with firstclass continuations. With the addition of control delimiters (prompts), the continuations become composable and the calculi are believed to become more expressive. We formalise that the addition of prompts ..."
Abstract
 Add to MetaCart
There is a correspondence between classical logic and programming language calculi with firstclass continuations. With the addition of control delimiters (prompts), the continuations become composable and the calculi are believed to become more expressive. We formalise that the addition of prompts corresponds to the addition of a single dynamicallyscoped variable modelling the special toplevel continuation. From a type perspective, the dynamicallyscoped variable requires effect annotations. From a logic perspective, the effect annotations can be understood in a standard logic extended with the dual of implication, namely subtraction.
Mathematical Foundations of Programming Semantics
, 2001
"... Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Notes Series publications. Copies may be obtained by contacting: BRICS ..."
Abstract
 Add to MetaCart
Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Notes Series publications. Copies may be obtained by contacting: BRICS