Results 1  10
of
10
Computational Effects and Operations: An Overview
, 2004
"... We overview a programme to provide a unified semantics for computational effects based upon the notion of a countable enriched Lawvere theory. We define the notion of countable enriched Lawvere theory, show how the various leading examples of computational effects, except for continuations, give ris ..."
Abstract

Cited by 34 (8 self)
 Add to MetaCart
We overview a programme to provide a unified semantics for computational effects based upon the notion of a countable enriched Lawvere theory. We define the notion of countable enriched Lawvere theory, show how the various leading examples of computational effects, except for continuations, give rise to them, and we compare the definition with that of a strong monad. We outline how one may use the notion to model three natural ways in which to combine computational effects: by their sum, by their commutative combination, and by distributivity. We also outline a unified account of operational semantics. We present results we have already shown, some partial results, and our plans for further development of the programme.
Handlers in Action
"... We lay operational foundations for effect handlers. Introduced by Plotkin and Pretnar, effect handlers are a novel programming construct that generalises exception handlers, handling a range of computational effects, such as I/O, state, and nondeterminism. We propose a smallstep structural operatio ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
(Show Context)
We lay operational foundations for effect handlers. Introduced by Plotkin and Pretnar, effect handlers are a novel programming construct that generalises exception handlers, handling a range of computational effects, such as I/O, state, and nondeterminism. We propose a smallstep structural operational semantics for a higherorder calculus of effect handlers, along with a sound type and effect system. We explore two alternative effect handler implementation techniques: free monads, and delimited continuations. Finally, we show that Filinski’s monadic reflection can be straightforwardly simulated by effect handlers. 1.
Modular monad transformers
 In ESOP ’09: Proceedings of the 18th European Symposium on Programming Languages and Systems
, 2009
"... Abstract. During the last two decades, monads have become an indispensable tool for structuring functional programs with computational effects. In this setting, the mathematical notion of a monad is extended with operations that allow programmers to manipulate these effects. When several effects are ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
(Show Context)
Abstract. During the last two decades, monads have become an indispensable tool for structuring functional programs with computational effects. In this setting, the mathematical notion of a monad is extended with operations that allow programmers to manipulate these effects. When several effects are involved, monad transformers can be used to build up the required monad one effect at a time. Although this seems to be modularity nirvana, there is a catch: in addition to the construction of a monad, the effectmanipulating operations need to be lifted to the resulting monad. The traditional approach for lifting operations is nonmodular and adhoc. We solve this problem with a principled technique for lifting operations that makes monad transformers truly modular. 1
Monad Transformers as Monoid Transformers
"... The incremental approach to modular monadic semantics constructs complex monads by using monad transformers to add computational features to a preexisting monad. A complication of this approach is that the operations associated to the preexisting monad need to be lifted to the new monad. In a compa ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
(Show Context)
The incremental approach to modular monadic semantics constructs complex monads by using monad transformers to add computational features to a preexisting monad. A complication of this approach is that the operations associated to the preexisting monad need to be lifted to the new monad. In a companion paper by Jaskelioff, the lifting problem has been addressed in the setting of system F ω. Here, we recast and extend those results in a categorytheoretic setting. We abstract and generalize from monads to monoids (in a monoidal category), and from monad transformers to monoid transformers. The generalization brings more simplicity and clarity, and opens the way for lifting of operations with applicability beyond monads. Key words: Monad, Monoid, Monoidal Category
Generic Models for Computational Effects
"... A Freydcategory is a subtle generalisation of the notion of a category with finite products. It is suitable for modelling environments in callbyvalue programming languages, such as the computational λcalculus, with computational effects. We develop the theory of Freydcategories with that in min ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
A Freydcategory is a subtle generalisation of the notion of a category with finite products. It is suitable for modelling environments in callbyvalue programming languages, such as the computational λcalculus, with computational effects. We develop the theory of Freydcategories with that in mind. We first show that any countable Lawvere theory, hence any signature of operations with countable arity subject to equations, directly generates a Freydcategory. We then give canonical, universal embeddings of Freydcategories into closed Freydcategories, characterised by being free cocompletions. The combination of the two constructions sends a signature of operations and equations to the Kleisli category for the monad on the category Set generated by it, thus refining the analysis of computational effects given by monads. That in turn allows a more structural analysis of the λccalculus. Our leading examples of signatures arise from sideeffects, interactive input/output and exceptions. We extend our analysis to an enriched setting in order to account for recursion and for computational effects and signatures that inherently involve it, such as partiality, nondeterminism and probabilistic nondeterminism. Key words: Freydcategory, enriched Yoneda embedding, conical colimit completion, canonical model
Relating computational effects by ⊤⊤lifting, in
 of Lecture Notes in Computer Science
"... We consider the problem of establishing a relationship between two interpretations of base type terms of a λccalculus extended with algebraic operations. We show that the given relationship holds if it satisfies a set of natural conditions. We apply this result to 1) comparing two monadic semantics ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
We consider the problem of establishing a relationship between two interpretations of base type terms of a λccalculus extended with algebraic operations. We show that the given relationship holds if it satisfies a set of natural conditions. We apply this result to 1) comparing two monadic semantics related by a strong monad morphism, and 2) comparing two monadic semantics of fresh name creation: Stark’s new name creation monad [32], and the global counter monad. We also consider the same problem, relating semantics of computational effects, in the presence of recursive functions. We apply this additional by extending the previous monad morphism comparison result to the recursive case.
About raising and handling exceptions
, 2006
"... Abstract. This paper presents a unified framework for dealing with a deduction system and a denotational semantics of exceptions. It is based on the fact that handling exceptions can be seen as a kind of generalized case distinction. This point of view on exceptions has been introduced in 2004, it i ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. This paper presents a unified framework for dealing with a deduction system and a denotational semantics of exceptions. It is based on the fact that handling exceptions can be seen as a kind of generalized case distinction. This point of view on exceptions has been introduced in 2004, it is based on the notion of diagrammatic logic, which assumes some familiarity with category theory. Extensive sums of types can be used for dealing with case distinctions. The aim of this new paper is to focus on the role of a generalized extensivity property for dealing with exceptions. Moreover, the presentation of this paper makes only a
DOI 10.1007/s1099000687493 About permutation algebras, (pre)sheaves and named sets ∗
"... Abstract In this paper we survey some wellknown approaches proposed as general models for calculi dealing with names (like for example process calculi with namepassing). We focus on (pre)sheaf categories, nominal sets, permutation algebras and named sets, studying the relationships among these mod ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract In this paper we survey some wellknown approaches proposed as general models for calculi dealing with names (like for example process calculi with namepassing). We focus on (pre)sheaf categories, nominal sets, permutation algebras and named sets, studying the relationships among these models, thus allowing techniques and constructions to be transferred from one model to the other.
Notions of Computability for General Datatypes
, 2001
"... ncratic details of the programming language). We would place our work near the latter end of this spectrum, our intention being to uncover deep mathematical structure that is inherent in the nature of certain kinds of computation, independent of details of language designand whose relevance will ..."
Abstract
 Add to MetaCart
ncratic details of the programming language). We would place our work near the latter end of this spectrum, our intention being to uncover deep mathematical structure that is inherent in the nature of certain kinds of computation, independent of details of language designand whose relevance will therefore persist as particular languages come and go. The distinctive contribution of our project has been to focus on various natural notions of computability that programming languages may embody. It is well known that all reasonable programming languages give the same computable functions on natural numbers, but there are interesting senses in which this is not true for all other commonly occurring datatypes. Our philosophy is that an understanding of these notions of computability gives insight into those semantic models that most closely match the languages in question, which in turn supports the design of program logics with a clear operational meaning. Particular col