Reference. Parameterised notions of computation
Moggi’s Computational Monads and Power et al .‘s equivalent notion of Freyd category have captured a large range of computational effects present in programming languages. Examples include non-termination, non-determinism, exceptions, continuations, side effects and input/output. We present generalisations of both computational monads and Freyd categories, which we call parameterised monads and parameterised Freyd categories, that also capture computational effects with parameters. Examples of such are composable continuations, side effects where the type of the state varies and input/output where the range of inputs and outputs varies. By considering structured parameterisation also, we extend the range of effects to cover separated side effects and multiple independent streams of I/O. We also present two typed λ-calculi that soundly and completely model our categorical definitions – with and without symmetric monoidal parameterisation – and act as prototypical languages with parameterised effects.
Cite
Cited by (5)
Modular models of monoids with operations by lifting functors along fibrations yang-2026-modular
Inspired by Plotkin and Power’s algebraic treatment of computational effects and the principle of notions of computations as monoids, we propose a categorical framework for equational theories and models of monoids equipped with operations. This framework generalises Plotkin and Power’s algebraic treatment of effectful operations taking or returning values as input or output to operations that may take or return computations as input or output. Additionally, to give semantic models of computational effects in a modular way, we introduce a formal theory of modular constructions of algebraic structures based on the framework of lifting functors along fibrations.
Modular Models of Monoids with Operations yang-2023-modular
Inspired by algebraic effects and the principle of notions of computations as monoids, we study a categorical framework for equational theories and models of monoids equipped with operations. The framework covers not only algebraic operations but also scoped and variable-binding operations. Appealingly, in this framework both theories and models can be modularly composed. Technically, a general monoid-theory correspondence is shown, saying that the category of theories of algebraic operations is equivalent to the category of monoids. Moreover, more complex forms of operations can be coreflected into algebraic operations, in a way that preserves initial algebras. On models, we introduce modular models of a theory, which can interpret abstract syntax in the presence of other operations. We show constructions of modular models (i) from monoid transformers, (ii) from free algebras, (iii) by composition, and (iv) in symmetric monoidal categories.
On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control forster-2019-on
We compare the expressive power of three programming abstractions for user-defined computational effects: Plotkin and Pretnar’s effect handlers, Filinski’s monadic reflection, and delimited control. This comparison allows a precise discussion about the relative expressiveness of each programming abstraction. It also demonstrates the sensitivity of the relative expressiveness of user-defined effects to seemingly orthogonal language features. We present three calculi, one per abstraction, extending Levy’s call-by-push-value. For each calculus, we present syntax, operational semantics, a natural type-and-effect system, and, for effect handlers and monadic reflection, a set-theoretic denotational semantics. We establish their basic metatheoretic properties: safety, termination, and, where applicable, soundness and adequacy. Using Felleisen’s notion of a macro translation, we show that these abstractions can macro express each other, and show which translations preserve typeability. We use the adequate finitary set-theoretic denotational semantics for the monadic calculus to show that effect handlers cannot be macro expressed while preserving typeability either by monadic reflection or by delimited control. Our argument fails with simple changes to the type system such as polymorphism and inductive types. We supplement our development with a mechanised Abella formalisation.
A Coq Library For Internal Verification of Running-Times mccarthy_etal_2016
Algebraic foundations for effect-dependent optimisations kammar-2012-algebraic
Cites 37 works (1 here)
With notes (1)
Linear logic girard_linear_1987
The familiar connective of negation is broken into two operations: linear negation which is the purely negative part of negation and the modality “of course” which has the meaning of a reaffirmation. Following this basic discovery, a completely new approach to the whole area between constructive logics and programmation is initiated.
External (36)
- Typechecking a multithreaded functional language with session types (2006)
- Polymorphism and separation in hoare type theory (2006)
- Semantics of separation-logic typing and higher-order frame rules for algol-like languages (2006)
- Substructural Simple Type Theories for Separation and In-place Update (PhD thesis) (2006)
- Reading, Writing and Relations (2006)
- Safe Programming with Pointers Through Stateful Views (2005)
- Substructural Type Systems (2005)
- Uniqueness logic (2005)
- L3: A Linear Language with Locations (2005)
- Separation and information hiding (2004)
- History Effects and Verification (2004)
- The marriage of effects and monads (2003)
- Modelling environments in call-by-value programming languages (2003)
- Generalizing substitution (2003)
- Notions of Computation Determine Monads (2002)
- Alias types for recursive data structures (2001)
- Local Reasoning about Programs that Alter Data Structures (2001)
- A type system for bounded space and functional in-place update (2000)
- Typed memory management via static capabilities (2000)
- Alias types (2000)
- Practical Foundations of Mathematics (1999)
- Closed Freyd- and kappa-categories (1999)
- Categories for the Working Mathematician (2nd edn.) (1998)
- Premonoidal categories and notions of computation (1997)
- Categorical Structure of Continuation Passing Style (PhD thesis) (1997)
- From CML to its process algebra (1996)
- Adjoint Rewriting (PhD thesis) (1995)
- Monads and composable continuations (1994)
- Imperative functional programming (1993)
- Conventional and uniqueness typing in graph rewrite systems (1993)
- Notions of computation and monads (1991)
- Is there a use for linear logic? (1991)
- Linear types can change the world! (1990)
- A Functional Abstraction of Typed Contexts (DIKU TR 89/12) (1989)
- Computational lambda-calculus and monads (1989)
- Polymorphic effect systems (1988)