Parameterised notions of computation
Author:
- 1 March 2009
- journal article
- research article
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 19 (3-4) , 335-376
Abstract
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.Keywords
This publication has 17 references indexed in Scilit:
- Semantics of Separation-Logic Typing and Higher-order Frame Rules for Algol-like LanguagesLogical Methods in Computer Science, 2006
- Generalizing SubstitutionRAIRO - Theoretical Informatics and Applications, 2003
- Modelling environments in call-by-value programming languagesInformation and Computation, 2003
- The marriage of effects and monadsACM Transactions on Computational Logic, 2003
- Typed memory management via static capabilitiesACM Transactions on Programming Languages and Systems, 2000
- Premonoidal categories and notions of computationMathematical Structures in Computer Science, 1997
- From CML to its process algebraTheoretical Computer Science, 1996
- Monads and composable continuationsHigher-Order and Symbolic Computation, 1994
- Notions of computation and monadsInformation and Computation, 1991
- Linear logicTheoretical Computer Science, 1987