Results 1 - 10
of
15
Models of Sharing Graphs: A Categorical Semantics of let and letrec
, 1997
"... To my parents A general abstract theory for computation involving shared resources is presented. We develop the models of sharing graphs, also known as term graphs, in terms of both syntax and semantics. According to the complexity of the permitted form of sharing, we consider four situations of sha ..."
Abstract
-
Cited by 60 (9 self)
- Add to MetaCart
To my parents A general abstract theory for computation involving shared resources is presented. We develop the models of sharing graphs, also known as term graphs, in terms of both syntax and semantics. According to the complexity of the permitted form of sharing, we consider four situations of sharing graphs. The simplest is first-order acyclic sharing graphs represented by let-syntax, and others are extensions with higher-order constructs (lambda calculi) and/or cyclic sharing (recursive letrec binding). For each of four settings, we provide the equational theory for representing the sharing graphs, and identify the class of categorical models which are shown to be sound and complete for the theory. The emphasis is put on the algebraic nature of sharing graphs, which leads us to the semantic account of them. We describe the models in terms of the notions of symmetric monoidal categories and functors, additionally with symmetric monoidal adjunctions and traced
Variations on Algebra: monadicity and generalisations of equational theories
- Formal Aspects of Computing
, 2001
"... this paper the author was partially supported by an SERC/EPSRC Advanced Research Fellowship, EPSRC Research grant GR/L54639, and EU Working Group APPSEM ..."
Abstract
-
Cited by 26 (0 self)
- Add to MetaCart
this paper the author was partially supported by an SERC/EPSRC Advanced Research Fellowship, EPSRC Research grant GR/L54639, and EU Working Group APPSEM
An Axiomatic Approach to Binary Logical Relations with Applications to Data Refinement
- Proc. TACS'97, Springer LNCS 1281
, 1997
"... We introduce an axiomatic approach to logical relations and data refinement. We consider a programming language and the monad on the category of small categories generated by it. We identify abstract data types for the language with sketches for the associated monad, and define an axiomatic notion o ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
We introduce an axiomatic approach to logical relations and data refinement. We consider a programming language and the monad on the category of small categories generated by it. We identify abstract data types for the language with sketches for the associated monad, and define an axiomatic notion of "relation" between models of such a sketch in a semantic category. We then prove three results: (i) such models lift to the whole language together with the sketch; (ii) any such relation satisfies a soundness condition, and (iii) such relations compose. We do this for both equality of data representations and for an ordered version. Finally, we compare our formulation of data refinement with that of Hoare. This work has been done with the support of the MITI Cooperative Architecture Project. This author also acknowledges the support of Kaken-hi. y This author achnowledges the support of the MITI Cooperative Architecture Project. z This author acknowledges the support of EPSRC grant...
Call-By-Push-Value: A Subsuming Paradigm
- in Proc. TLCA ’99
, 1999
"... . Call-by-push-value is a new paradigm that subsumes the call-by-name and call-by-value paradigms, in the following sense: both operational and denotational semantics for those paradigms can be seen as arising, via translations that we will provide, from similar semantics for call-by-push-value. To ..."
Abstract
-
Cited by 14 (0 self)
- Add to MetaCart
. Call-by-push-value is a new paradigm that subsumes the call-by-name and call-by-value paradigms, in the following sense: both operational and denotational semantics for those paradigms can be seen as arising, via translations that we will provide, from similar semantics for call-by-push-value. To explain call-by-push-value, we first discuss general operational ideas, especially the distinction between values and computations, using the principle that "a value is, a computation does". Using an example program, we see that the lambda-calculus primitives can be understood as push/pop commands for an operand-stack. We provide operational and denotational semantics for a range of computational effects and show their agreement. We hence obtain semantics for call-by-name and call-by-value, of which some are familiar, some are new and some were known but previously appeared mysterious. 1 Introduction 1.1 Contribution In his invited lecture at POPL '98 [32], Reynolds, surveying over 30 year...
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’
Modelling environments in call-by-value programming languages
, 2003
"... In categorical semantics, there have traditionally been two approaches to modelling environments, one by use of finite products in cartesian closed categories, the other by use of the base categories of indexed categories with structure. Each requires modifications in order to account for environmen ..."
Abstract
-
Cited by 10 (3 self)
- Add to MetaCart
In categorical semantics, there have traditionally been two approaches to modelling environments, one by use of finite products in cartesian closed categories, the other by use of the base categories of indexed categories with structure. Each requires modifications in order to account for environments in call-by-value programming languages. There have been two more general definitions along both of these lines: the first generalising from cartesian to symmetric premonoidal categories, the second generalising from indexed categories with specified structure to κ-categories. In this paper, we investigate environments in call-by-value languages by analysing a finegrain variant of Moggi’s computational λ-calculus, giving two equivalent sound and complete classes of models: one given by closed Freyd categories, which are based on symmetric premonoidal categories, the other given by closed κ-categories.
Pseudo-distributive laws
, 2004
"... We address the question of how elegantly to combine a number of different structures, such as finite product structure, monoidal structure, and colimiting structure, on a category. Extending work of Marmolejo and Lack, we develop the definition of a pseudo-distributive law between pseudo-monads, and ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
We address the question of how elegantly to combine a number of different structures, such as finite product structure, monoidal structure, and colimiting structure, on a category. Extending work of Marmolejo and Lack, we develop the definition of a pseudo-distributive law between pseudo-monads, and we show how the definition and the main theorems about it may be used to model several such structures simultaneously. Specifically, we address the relationship between pseudo-distributive laws and the lifting of one pseudo-monad to the 2-category of algebras and to the Kleisli bicategory of another. This, for instance, sheds light on the preservation of some structures but not others along the Yoneda embedding. Our leading examples are given by the use of open maps to model bisimulation and by the logic of bunched implications.
Continuation Semantics and Self-adjointness
- In Proceedings MFPS XIII, Electronic Notes in Theoretical Computer Science
, 1997
"... We give an abstract categorical presentation of continuation semantics by taking the continuation type constructor : (or cont in Standard ML of New Jersey) as primitive. This constructor on types extends to a contravariant functor on terms which is adjoint to itself on the left; restricted to the su ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
We give an abstract categorical presentation of continuation semantics by taking the continuation type constructor : (or cont in Standard ML of New Jersey) as primitive. This constructor on types extends to a contravariant functor on terms which is adjoint to itself on the left; restricted to the subcategory of those programs that do not manipulate the current continuation, it is adjoint to itself on the right. The motivating example of such a category is built from (equivalence classes of typing judgements for) continuation passing style (CPS) terms. A call-by-value -calculus with the control operator callcc as well as a call-byname -calculus can be interpreted. Arrow types are broken down into continuation types for argument/result-continuations pairs. Specialising the semantics to the CPS term model allows a reconstruction of CPS transforms. 1 Introduction The task of finding a semantic infrastructure for continuation semantics is somewhat analogous to that of interpreting -calcul...
Environments, Continuation Semantics and Indexed Categories
- Theoretical Aspects of Computer Software, number 1281 in Lect. Notes Comp. Sci
, 1997
"... . There have traditionally been two approaches to modelling environments, one by use of ønite products in Cartesian closed categories, the other by use of the base categories of indexed categories with structure. Recently, there have been more general deønitions along both of these lines: the ørst g ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
. There have traditionally been two approaches to modelling environments, one by use of ønite products in Cartesian closed categories, the other by use of the base categories of indexed categories with structure. Recently, there have been more general deønitions along both of these lines: the ørst generalising from Cartesian to symmetric premonoidal categories, the second generalising from indexed categories with speciøed structure to -categories. The added generality is not of the purely mathematical kind; in fact it is necessary to extend semantics from the logical calculi studied in, say, Type Theory to more realistic programming language fragments. In this paper, we establish an equivalence between these two recent notions. We then use that equivalence to study semantics for continuations. We give three category theoretic semantics for modelling continuations and show the relationships between them. The ørst is given by a continuations monad. The second is based on a symmetric prem...
Generic Models for Computational Effects
"... A Freyd-category is a subtle generalisation of the notion of a category with finite products. It is suitable for modelling environments in call-by-value programming languages, such as the computational λ-calculus, with computational effects. We develop the theory of Freyd-categories with that in min ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
A Freyd-category is a subtle generalisation of the notion of a category with finite products. It is suitable for modelling environments in call-by-value programming languages, such as the computational λ-calculus, with computational effects. We develop the theory of Freyd-categories 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 Freyd-category. We then give canonical, universal embeddings of Freyd-categories into closed Freyd-categories, 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 λc-calculus. Our leading examples of signatures arise from side-effects, 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: Freyd-category, enriched Yoneda embedding, conical colimit completion, canonical model

