Results 1 -
2 of
2
Parameterised notions of computation
- In MSFP 2006: Workshop on mathematically structured functional programming, ed. Conor McBride and Tarmo Uustalu. Electronic Workshops in Computing, British Computer Society
, 2006
"... 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 such as exceptions, side-effects, input/output and continuations. We present generalisations of both constructs, which we call para ..."
Abstract
-
Cited by 27 (3 self)
- Add to MetaCart
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 such as exceptions, side-effects, input/output and continuations. We present generalisations of both constructs, 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 also considering monoidal parameterisation, 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 monoidal parameterisation — and act as prototypical languages with parameterised effects.
The Structure of Call-by-Value
, 2000
"... To my parents Understanding procedure calls is crucial in computer science and everyday pro-gramming. Among the most common strategies for passing procedure argu-ments (‘evaluation strategies’) are ‘call-by-name’, ‘call-by-need’, and ‘call-by-value’, where the latter is the most commonly used. While ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
To my parents Understanding procedure calls is crucial in computer science and everyday pro-gramming. Among the most common strategies for passing procedure argu-ments (‘evaluation strategies’) are ‘call-by-name’, ‘call-by-need’, and ‘call-by-value’, where the latter is the most commonly used. While reasoning about procedure calls is simple for call-by-name, problems arise for call-by-need and call-by-value, because it matters how often and in which order the arguments of a procedure are evaluated. We shall classify these problems and see that all of them occur for call-by-value, some occur for call-by-need, and none occur for call-by-name. In that sense, call-by-value is the ‘greatest common denominator ’ of the three evaluation strategies. Reasoning about call-by-value programs has been tackled by Eugenio Moggi’s ‘computational lambda-calculus’, which is based on a distinction between ‘values’

