Results 1 
9 of
9
From Control Effects to Typed Continuation Passing
 In 30th SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL’03
, 2003
"... Firstclass continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuationpassing transform. In this paper, we e ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
Firstclass continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuationpassing transform. In this paper, we establish the connection between an effect system for firstclass continuations and typed versions of continuationpassing style. A region in the effect system determines a local answer type for continuations, such that the continuation transforms of pure expressions are parametrically polymorphic in their answer types. We use this polymorphism to derive transforms that make use of effect information, in particular, a mixed linear/nonlinear continuationpassing transform, in which expressions without control effects are passed their continuations linearly.
Relational parametricity and control
 Logical Methods in Computer Science
"... www.lmcsonline.org ..."
Algebraic foundations for effectdependent optimisations
 In POPL
, 2012
"... We present a general theory of Giffordstyle type and effect annotations, where effect annotations are sets of effects. Generality is achieved by recourse to the theory of algebraic effects, a development of Moggi’s monadic theory of computational effects that emphasises the operations causing the e ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
We present a general theory of Giffordstyle type and effect annotations, where effect annotations are sets of effects. Generality is achieved by recourse to the theory of algebraic effects, a development of Moggi’s monadic theory of computational effects that emphasises the operations causing the effects at hand and their equational theory. The key observation is that annotation effects can be identified with operation symbols. We develop an annotated version of Levy’s CallbyPushValue language with a kind of computations for every effect set; it can be thought of as a sequential, annotated intermediate language. We develop a range of validated optimisations (i.e., equivalences), generalising many existing ones and adding new ones. We classify these optimisations as structural, algebraic, or abstract: structural optimisations always hold; algebraic ones depend on the effect theory at hand; and abstract ones depend on the global nature of that theory (we give modularlycheckable sufficient conditions for their validity).
On the callbyvalue CPS transform and its semantics
, 2004
"... We investigate continuations in the context of idealized callbyvalue programming languages. On the semantic side, we analyze the categorical structures that arise from continuation models of callbyvalue languages. On the syntactic side, we study the callbyvalue continuationpassing transformat ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We investigate continuations in the context of idealized callbyvalue programming languages. On the semantic side, we analyze the categorical structures that arise from continuation models of callbyvalue languages. On the syntactic side, we study the callbyvalue continuationpassing transformation as a translation between equational theories. Among the novelties are an unusually simple axiomatization of control operators and a strengthened completeness result with a proof based on a delaying transform.
A Generic Complete Dynamic Logic for Reasoning about Purity and Effects
 TO APPEAR IN FORMAL ASPECTS OF COMPUTING
"... For a number of programming languages, among them Eiffel, C, Java, and Ruby, Hoarestyle logics and dynamic logics have been developed. In these logics, pre and postconditions are typically formulated using potentially effectful programs. In order to ensure that these pre and postconditions behave ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
For a number of programming languages, among them Eiffel, C, Java, and Ruby, Hoarestyle logics and dynamic logics have been developed. In these logics, pre and postconditions are typically formulated using potentially effectful programs. In order to ensure that these pre and postconditions behave like logical formulae (that is, enjoy some kind of referential transparency), a notion of purity is needed. Here, we introduce a generic framework for reasoning about purity and effects. Effects are modelled abstractly and axiomatically, using Moggi’s idea of encapsulation of effects as monads. We introduce a dynamic logic (from which, as usual, a Hoare logic can be derived) whose logical formulae are pure programs in a strong sense. We formulate a set of proof rules for this logic, and prove it to be complete with respect to a categorical semantics. Using dynamic logic, we then develop a relaxed notion of purity which allows for observationally neutral effects such writing on newly allocated memory.
Parametrized exceptions
 IN CALCO 05, LNCS 3629
, 2005
"... Following the paradigm of encapsulation of side effects via monads, the Java execution mechanism has been described by the socalled Java monad, encorporating essentially stateful computation and exceptions, which are heavily used in Java control flow. A technical problem that appears in this model ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
Following the paradigm of encapsulation of side effects via monads, the Java execution mechanism has been described by the socalled Java monad, encorporating essentially stateful computation and exceptions, which are heavily used in Java control flow. A technical problem that appears in this model is the fact that the return exception in Java is parametrized by the return value, so that method calls actually move between slightly different monads, depending on the type of the return value. We provide a treatment of this problem in the general framework of exception monads as introduced in earlier work by some of the authors; this framework includes generic partial and total Hoare calculi for abrupt termination. Moreover, we illustrate this framework by means of a verification of a pattern match algorithm.
Parameterizations and FixedPoint Operators on Control Categories
 Fundam. Inform
, 2005
"... The #calculus features both variables and names, together with their binding mechanisms. This means that constructions on open terms are necessarily parameterized in two di#erent ways for both variables and names. Semantically, such a construction must be modeled by a biparameterized family of ope ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
The #calculus features both variables and names, together with their binding mechanisms. This means that constructions on open terms are necessarily parameterized in two di#erent ways for both variables and names. Semantically, such a construction must be modeled by a biparameterized family of operators. In this paper, we study these biparameterized operators on Selinger's categorical models of the # calculus called control categories. The overall development is analogous to that of Lambek's functional completeness of cartesian closed categories via polynomial categories. As a particular and important case, we study parameterizations of uniform fixedpoint operators on control categories, and show bijective correspondences between parameterized fixedpoint operators and nonparameterized ones under uniformity conditions.
Proof Abstraction for Imperative Languages
, 2003
"... Modularity in programming language semantics derives from abstracting over the structure of underlying denotations, yielding semantic descriptions that are more abstract and reusable. One such semantic framework is Liang’s modular monadic semantics in which the underlying semantic structure is encap ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Modularity in programming language semantics derives from abstracting over the structure of underlying denotations, yielding semantic descriptions that are more abstract and reusable. One such semantic framework is Liang’s modular monadic semantics in which the underlying semantic structure is encapsulated with a monad. Such abstraction can be at odds with program verification, however, because program specifications require access to the (deliberately) hidden semantic representation. The techniques for reasoning about modular monadic definitions of imperative programs introduced here overcome this barrier. And, just like program definitions in modular monadic semantics, our program specifications and proofs are representationindependent and hold for whole classes of monads, thereby yielding proofs of great generality.