Results 1  10
of
97
Towards a Mathematical Operational Semantics
 In Proc. 12 th LICS Conf
, 1997
"... We present a categorical theory of `wellbehaved' operational semantics which aims at complementing the established theory of domains and denotational semantics to form a coherent whole. It is shown that, if the operational rules of a programming language can be modelled as a natural transforma ..."
Abstract

Cited by 169 (9 self)
 Add to MetaCart
(Show Context)
We present a categorical theory of `wellbehaved' operational semantics which aims at complementing the established theory of domains and denotational semantics to form a coherent whole. It is shown that, if the operational rules of a programming language can be modelled as a natural transformation of a suitable general form, depending on functorial notions of syntax and behaviour, then one gets both an operational model and a canonical, internally fully abstract denotational model for free; moreover, both models satisfy the operational rules. The theory is based on distributive laws and bialgebras; it specialises to the known classes of wellbehaved rules for structural operational semantics, such as GSOS.
Semantic Lego
, 1995
"... Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. ..."
Abstract

Cited by 40 (0 self)
 Add to MetaCart
(Show Context)
Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. Following Mosses [Mos92], we divide a semantics into two parts, a computation ADT and a language ADT (abstract data type). The computation ADT represents the basic semantic structure of the language. The language ADT represents the actual language constructs, as described by a grammar. We define the language ADT using the computation ADT; in fact, language constructs are polymorphic over many different computation ADTs. Following Moggi [Mog89a], we build the computation ADT from composable parts, using monads and monad transformers. These techniques allow us to build many different computation ADTs, and, since our language constructs are polymorphic, many different language semantics. We autom...
A dialecticalike model of linear logic
 In Proc. Conf. on Category Theory and Computer Science, LNCS 389
, 1989
"... The aim of this work is to define the categories GC, describe their categorical structure and show they are a model of Linear Logic. The second goal is to relate those categories to the Dialectica categories DC, cf.[DCJ, using different functors for the exponential “of course”. It is hoped that this ..."
Abstract

Cited by 32 (6 self)
 Add to MetaCart
The aim of this work is to define the categories GC, describe their categorical structure and show they are a model of Linear Logic. The second goal is to relate those categories to the Dialectica categories DC, cf.[DCJ, using different functors for the exponential “of course”. It is hoped that this categorical model of Linear Logic should help us to get a better understanding of the logic, which is, perhaps, the first nonintuitionistic constructive logic. This work is divided in two parts, each one with 3 sections. The first section shows that GC is a monoidal closed category and describes bifunctors for tensor “0”, internal horn “[—, —]“, par “u”, cartesian products “& “ and coproducts “s”. The second section defines linear negation as a contravariant functor obtained evaluating the internal horn bifunctor at a “dualising object”. The third section makes explicit the connections with Linear Logic, while the fourth introduces the comonads used to model the connective “of course”. Section 5 discusses some properties of these cornonads and finally section 6 makes the logical connections once more. This work grew out of suggestions of J.Y. Girard at the AMSConference on Categories, Logic and Computer Science in Boulder 1987, where I presented my earlier work on the Dialectica categories, hence the title. Still on the lines of given credit where it is due, I would like to say that Martin Hyland, under whose supervision this work was written, has been a continuous source of ideas and inspiration. Many heartfelt thanks to him. 1. The main definitions We start with a finitely complete category C. Then to describe GC say that its objects are relations on objects of C, that is monics A ~ U x X, which we usually write as (U ~ X). Given two such objects, (U ~ X) and (V L Y), which we call simply A and B, a morphism from A to B consists of a pair of maps in C, f: U — * V and F 4 Y —+ X, such that a pullback condition is satisfied, namely that where (~~)_1 represents puilbacks. (U x F) 1 (o~) ~ (f x Y) 1 (/3), (1) 342 Using diagrams, we say (f,F) is a morphism in GC if there is a (unique) map in ~, k: A ’ —~B ’ making the triangle commute: a~I Ia
Computational Comonads and Intensional Semantics
, 1991
"... We explore some foundational issues in the development of a theory of intensional semantics. A programming language may be given a variety of semantics, differing in the level of abstraction; one generally chooses the semantics at an abstraction level appropriate for reasoning about a particular kin ..."
Abstract

Cited by 29 (1 self)
 Add to MetaCart
We explore some foundational issues in the development of a theory of intensional semantics. A programming language may be given a variety of semantics, differing in the level of abstraction; one generally chooses the semantics at an abstraction level appropriate for reasoning about a particular kind of program property. Extensional semantics are typically appropriate for proving properties such as partial correctness, but an intensional semantics at a lower abstraction level is required in order to reason about computation strategy and thereby support reasoning about intensional aspects of behavior such as order of evaluation and efficiency. It is obviously desirable to be able to establish sensible relationships between two semantics for the same language, and we seek a general categorytheoretic framework that permits this. Beginning with an "extensional" category, whose morphisms we can think of as functions of some kind, we model a notion of computation as a comonad with certain e...
Distributive laws and Koszulness
 Zbl 0853.18005 MR 1393517
, 1996
"... The basic motivation for our work was the following result of Getzler and Jones [5]. Let Cn = {Cn(m); m ≥ 1} be the famous little ncubes operad of Boardman and Vogt [10, Definition 4.1] and let en = {en(m); m ≥ 1} be its homology operad, en(m): = H(Cn(m)). Then the operad en is Koszul in the sense ..."
Abstract

Cited by 29 (1 self)
 Add to MetaCart
(Show Context)
The basic motivation for our work was the following result of Getzler and Jones [5]. Let Cn = {Cn(m); m ≥ 1} be the famous little ncubes operad of Boardman and Vogt [10, Definition 4.1] and let en = {en(m); m ≥ 1} be its homology operad, en(m): = H(Cn(m)). Then the operad en is Koszul in the sense of [6].
Understanding the small object argument
 Applied Categorical Structures
, 2008
"... The small object argument is a transfinite construction which, starting from a set of maps in a category, generates a weak factorisation system on that ..."
Abstract

Cited by 28 (2 self)
 Add to MetaCart
(Show Context)
The small object argument is a transfinite construction which, starting from a set of maps in a category, generates a weak factorisation system on that
The essence of the Iterator pattern
 McBride, Conor, & Uustalu, Tarmo (eds), Mathematicallystructured functional programming
, 2006
"... The ITERATOR pattern gives a clean interface for elementbyelement access to a collection. Imperative iterations using the pattern have two simultaneous aspects: mapping and accumulating. Various existing functional iterations model one or other of these, but not both simultaneously. We argue that ..."
Abstract

Cited by 21 (7 self)
 Add to MetaCart
(Show Context)
The ITERATOR pattern gives a clean interface for elementbyelement access to a collection. Imperative iterations using the pattern have two simultaneous aspects: mapping and accumulating. Various existing functional iterations model one or other of these, but not both simultaneously. We argue that McBride and Paterson’s idioms, and in particular the corresponding traverse operator, do exactly this, and therefore capture the essence of the ITERATOR pattern. We present some axioms for traversal, and illustrate with a simple example, the repmin problem.
Distributive laws for the coinductive solution of recursive equations
 Information and Computation
"... This paper illustrates the relevance of distributive laws for the solution of recursive equations, and shows that one approach for obtaining coinductive solutions of equations via infinite terms is in fact a special case of a more general approach using an extended form of coinduction via distributi ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
(Show Context)
This paper illustrates the relevance of distributive laws for the solution of recursive equations, and shows that one approach for obtaining coinductive solutions of equations via infinite terms is in fact a special case of a more general approach using an extended form of coinduction via distributive laws. 1