Results 11  20
of
25
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 structures ..."
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...
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
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
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 2 (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...
GALOIS FUNCTORS AND ENTWINING STRUCTURES
, 909
"... Abstract. Galois comodules over a coring can be characterised by properties of the relative injective comodules. They motivated the definition of Galois functors over some comonad (or monad) on any category and in the first section of the present paper we investigate the role of the relative injecti ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. Galois comodules over a coring can be characterised by properties of the relative injective comodules. They motivated the definition of Galois functors over some comonad (or monad) on any category and in the first section of the present paper we investigate the role of the relative injectives (projectives) in this context. Then we generalise the notion of corings (derived from an entwining of an algebra and a coalgebra) to the entwining of a monad and a comonad. Hereby a key role is played by the notion of a grouplike natural transformation g: I → G generalising the grouplike elements in corings. We apply the evolving theory to Hopf monads on arbitrary categories, and to comonoidal functors on monoidal categories in the sense of A. Bruguières and A. Virelizier. As wellknow, for any set G the product G × − defines an endofunctor on the category of sets and this is a Hopf monad if and only if G allows for a group structure. In the final section the elements of this case are generalised to arbitrary categories with finite products leading to Galois objects in the sense of Chase and Sweedler.
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
. 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...
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 2 (1 self)
 Add to MetaCart
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.
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 2 (0 self)
 Add to MetaCart
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.
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 2 (2 self)
 Add to MetaCart
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
An Intensional Investigation of Parallelism
, 1994
"... Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism ..."
Abstract
 Add to MetaCart
Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism, efficiencyimproving program transformations, etc. I propose to develop intensional models for a number of parallel programming languages. The semantics will be implemented, resulting in a programming language of parallel algorithms, called CDSP. Applications of CDSP will be developed to determine its suitability for actual use. The thesis will hopefully make both theoretical and practical contributions: as a foundational study of parallelism by looking at the expressive power of various constructs, and with the design, implementation, and applications of an intensional parallel programming language. 1 Introduction Denotational semantics has now been around for about 25 years, which makes...