Results 11  20
of
34
A CATEGORICAL OUTLOOK ON CELLULAR AUTOMATA
"... Abstract. In programming language semantics, it has proved to be fruitful to analyze contextdependent notions of computation, e.g., dataflow computation and attribute grammars, using comonads. We explore the viability and value of similar modeling of cellular automata. We identify local behaviors o ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
Abstract. In programming language semantics, it has proved to be fruitful to analyze contextdependent notions of computation, e.g., dataflow computation and attribute grammars, using comonads. We explore the viability and value of similar modeling of cellular automata. We identify local behaviors of cellular automata with coKleisli maps of the exponent comonad on the category of uniform spaces and uniformly continuous functions and exploit this equivalence to conclude some standard results about cellular automata as instances of basic categorytheoretic generalities. In particular, we recover CeccheriniSilberstein and Coornaert’s version of the CurtisHedlund theorem. 1.
Extending Monads with Pattern Matching
 In Proceedings of Haskell Symposium (2011), Haskell
, 2011
"... Sequencing of effectful computations can be neatly captured using monads and elegantly written using do notation. In practice such monads often allow additional ways of composing computations, which have to be written explicitly using combinators. We identify joinads, an abstract notion of computati ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
(Show Context)
Sequencing of effectful computations can be neatly captured using monads and elegantly written using do notation. In practice such monads often allow additional ways of composing computations, which have to be written explicitly using combinators. We identify joinads, an abstract notion of computation that is stronger than monads and captures many such adhoc extensions. In particular, joinads are monads with three additional operations: one of type m a → m b → m (a, b) captures various forms of parallel composition, one of type m a → m a → m a that is inspired by choice and one of type m a → m (m a) that captures aliasing of computations. Algebraically, the first two operations form a nearsemiring with commutative multiplication. We introduce docase notation that can be viewed as a monadic version of case. Joinad laws imply various syntactic equivalences of programs written using docase that are analogous to equivalences about case. Examples of joinads that benefit from the notation include speculative parallelism, waiting for a combination of user interface events, but also encoding of validation rules using the intersection of parsers.
Concrete Data Structures and Functional Parallel Programming
, 1997
"... We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed struc ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed structures called arrays. We find that arrays' symmetric replicated structures, suggested by the dataparallel SPMD paradigm, are incompatible with sum types. We then outline a functional language with explicitlydistributed (monomorphic) concrete types, including higherorder, sum and recursive ones. In this language, programs can be as large as the network and can observe communication events in other programs. Such flexibility is missing from current dataparallel languages and amounts to a fusion with their socalled annotations, directives or metalanguages. 1 Explicit communications and functional programming Faced with the mismatch between parallel programming languages and the requirements o...
Comonadic functional attribute evaluation
 Trends in Functional Programming
"... We have previously demonstrated that dataflow computation is comonadic. Here we argue that attribute evaluation has a lot in common with dataflow computation and admits a similar analysis. We claim that this yields a new, modular way to organize both attribute evaluation programs written directly in ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
We have previously demonstrated that dataflow computation is comonadic. Here we argue that attribute evaluation has a lot in common with dataflow computation and admits a similar analysis. We claim that this yields a new, modular way to organize both attribute evaluation programs written directly in a functional language as well as attribute grammar processors.
On the geometry of intuitionistic S4 proofs
 Homology, Homotopy and Applications
, 2003
"... ..."
(Show Context)
When Is a Container a Comonad?
"... Abstract. Abbott, Altenkirch, Ghani and others have taught us that many parameterized datatypes (set functors) can be usefully analyzed via container representations in terms of a set of shapes and a set of positions in each shape. This paper builds on the observation that datatypes often carry addi ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
(Show Context)
Abstract. Abbott, Altenkirch, Ghani and others have taught us that many parameterized datatypes (set functors) can be usefully analyzed via container representations in terms of a set of shapes and a set of positions in each shape. This paper builds on the observation that datatypes often carry additional structure that containers alone do not account for. We introduce directed containers to capture the common situation where every position in a datastructure determines another datastructure, informally, the subdatastructure rooted by that position. Some natural examples are nonempty lists and nodelabelled trees, and datastructures with a designated position (zippers). While containers denote set functors via a fullyfaithful functor, directed containers interpret fullyfaithfully into comonads. But more is true: every comonad whose underlying functor is a container is represented by a directed container. In fact, directed containers are the same as containers that are comonads. We also describe some constructions of directed containers. We have formalized our development in the dependently typed programming language Agda. 1
Combining a Monad and a Comonad
"... We give a systematic treatment of distributivity for a monad and a comonad as arises in giving category theoretic accounts of operational and denotational semantics, and in giving an intensional denotational semantics. We do this axiomatically, in terms of a monad and a comonad in a 2category, givi ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We give a systematic treatment of distributivity for a monad and a comonad as arises in giving category theoretic accounts of operational and denotational semantics, and in giving an intensional denotational semantics. We do this axiomatically, in terms of a monad and a comonad in a 2category, giving accounts of the EilenbergMoore and Kleisli constructions. We analyse the eight possible relationships, deducing that two pairs are isomorphic, but that the other pairs are all distinct. We develop those 2categorical denitions necessary to support this analysis. This work is supported by EPSRC grants GR/J84205: Frameworks for programming language semantics and logic and GR/M56333: The structure of programming languages : syntax and semantics, and British Council grant 747 FCS R34807: Data and program renement using algebraic structure. y The author acknowledges the support of STA through COE budget for Global Information Processing Project. 1 1 Introduction In recent years, th...
The essence of dataflow programming (short version
 Proc. of 3rd Asian Symp. on Programming Languages and Systems, APLAS 2005, v. 3780 of Lect. Notes in Comput. Sci
, 2005
"... Abstract. We propose a novel, comonadic approach to dataflow (streambased) computation. This is based on the observation that both general and causal stream functions can be characterized as coKleisli arrows of comonads and on the intuition that comonads in general must be a good means to structure ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We propose a novel, comonadic approach to dataflow (streambased) computation. This is based on the observation that both general and causal stream functions can be characterized as coKleisli arrows of comonads and on the intuition that comonads in general must be a good means to structure contextdependent computation. In particular, we develop a generic comonadic interpreter of languages for contextdependent computation and instantiate it for streambased computation. We also discuss distributive laws of a comonad over a monad as a means to structure combinations of effectful and contextdependent computation. We apply the latter to analyse clocked dataflow (partial stream based) computation. 1
Problems in Rewriting Applied to Categorical Concepts By the Example of a Computational Comonad
 Proceedings of the Sixth International Conference on Rewriting Techniques and Applications
, 1995
"... . We present a canonical system for comonads which can be extended to the notion of a computational comonad [BG92] where the crucial point is to find an appropriate representation. These canonical systems are checked with the help of the Larch Prover [GG91] exploiting a method by G. Huet [Hue90a] to ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
. We present a canonical system for comonads which can be extended to the notion of a computational comonad [BG92] where the crucial point is to find an appropriate representation. These canonical systems are checked with the help of the Larch Prover [GG91] exploiting a method by G. Huet [Hue90a] to represent typing within an untyped rewriting system. The resulting decision procedures are implemented in the programming language Elf [Pfe89] since typing is directly supported by this language. Finally we outline an incomplete attempt to solve the problem which could be used as a benchmark for rewriting tools. 1 Introduction The starting point of this work was to provide methods for checking the commutativity of diagrams arising in category theory. Diagrams in this context are used as a visual description of equations between morphisms. To check the commutativity of a diagram amounts to check the equality of the morphisms involved. One way to support this task is to solve the uniform wor...