Results 1 
7 of
7
Universal coalgebra: a theory of systems
, 2000
"... In the semantics of programming, nite data types such as finite lists, have traditionally been modelled by initial algebras. Later final coalgebras were used in order to deal with in finite data types. Coalgebras, which are the dual of algebras, turned out to be suited, moreover, as models for certa ..."
Abstract

Cited by 298 (31 self)
 Add to MetaCart
In the semantics of programming, nite data types such as finite lists, have traditionally been modelled by initial algebras. Later final coalgebras were used in order to deal with in finite data types. Coalgebras, which are the dual of algebras, turned out to be suited, moreover, as models for certain types of automata and more generally, for (transition and dynamical) systems. An important property of initial algebras is that they satisfy the familiar principle of induction. Such a principle was missing for coalgebras until the work of Aczel (NonWellFounded sets, CSLI Leethre Notes, Vol. 14, center for the study of Languages and information, Stanford, 1988) on a theory of nonwellfounded sets, in which he introduced a proof principle nowadays called coinduction. It was formulated in terms of bisimulation, a notion originally stemming from the world of concurrent programming languages. Using the notion of coalgebra homomorphism, the definition of bisimulation on coalgebras can be shown to be formally dual to that of congruence on algebras. Thus, the three basic notions of universal algebra: algebra, homomorphism of algebras, and congruence, turn out to correspond to coalgebra, homomorphism of coalgebras, and bisimulation, respectively. In this paper, the latter are taken
A Specification Language for Coordinated Objects
 Proceedings of the International Workshop on Specification and Verification of ComponentBased Systems
, 2005
"... The paper presents a specification language of autonomous objects supervised by a coordinating process. The coordination is defined by means of an interaction wrapper. The coordination semantics is described in the terms of bisimulation relations. The properties of the coordinated objects are expres ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The paper presents a specification language of autonomous objects supervised by a coordinating process. The coordination is defined by means of an interaction wrapper. The coordination semantics is described in the terms of bisimulation relations. The properties of the coordinated objects are expressed as temporal formulas, and verified by specific modelchecking algorithms. We use the alternating bit protocol to exemplify our specification language and its semantics. This approach allows a clear separation of concerns: the same coordinating process can be used with different concurrent objects, and the same objects can be used with a different coordinator. Thus our specification language allows easy modifications and customization. The method is effective in assembling increasingly complex systems from components. Moreover, composing different coordinating processes can be done without changing the code of the coordinated objects. In this way, the difficult task of implementing the mechanism of coordination becomes substantially easier.
ObjectOriented Programming in Dependent Type Theory
"... Abstract: We introduce basic concepts from objectoriented programming into dependent type theory based on the idea of modelling objects as interactive programs. We consider methods, interfaces, and the interaction between a fixed number of objects, including selfreferential method calls. We introd ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract: We introduce basic concepts from objectoriented programming into dependent type theory based on the idea of modelling objects as interactive programs. We consider methods, interfaces, and the interaction between a fixed number of objects, including selfreferential method calls. We introduce a monad like syntax for developing objects in dependent type theory. 1.1
LPS: A Language Prototyping System Using Modular Monadic Semantics
, 2001
"... This paper describes LPS, a Language Prototyping System that facilitates the modular development of interpreters from semantic building blocks. The system is based on the integration of ideas from Modular Monadic Semantics and Generic Programming. To define a new programming language, the abstract s ..."
Abstract
 Add to MetaCart
This paper describes LPS, a Language Prototyping System that facilitates the modular development of interpreters from semantic building blocks. The system is based on the integration of ideas from Modular Monadic Semantics and Generic Programming. To define a new programming language, the abstract syntax is described as the fixpoint of nonrecursive pattern functors. For each functor an algebra is defined whose carrier is the computational monad obtained from the application of several monad transformers to a base monad. The interpreter is automatically generated by a catamorphism or, in some special cases, a monadic catamorphism. The system has been implemented as a domainspecific language embedded in Haskell and we have also implemented an interactive framework for language testing. 1
Coalgebraic Specifications in ObjectOriented Programming
, 2004
"... Within the objectoriented paradigm the world consists of a collection of entities
having low coupling, called “objects”, each dealing with a specific task. Coordination
and communication takes place via sending of messages. Objects are grouped into
“classes” which determinate (among other things) t ..."
Abstract
 Add to MetaCart
Within the objectoriented paradigm the world consists of a collection of entities
having low coupling, called “objects”, each dealing with a specific task. Coordination
and communication takes place via sending of messages. Objects are grouped into
“classes” which determinate (among other things) the interface to the outside world
(of the objects belonging to the class). The general complaint on the objectoriented
paradigm is that it lacks a proper formal foundation.
One of the aims of this work is to show that final (terminal) coalgebras may serve
as a formal basis for object semantics in a similar way to the way initial algebras serve
as a formal basis for abstract data types.
Chapter 1 Coalgebras as Types determined by their Elimination Rules
"... Abstract We develop rules for coalgebras in type theory, and give meaning explanations for them. We show that elements of coalgebras are determined by their elimination rules, whereas the introduction rules can be considered as derived. This is in contrast with algebraic data types, for which the op ..."
Abstract
 Add to MetaCart
Abstract We develop rules for coalgebras in type theory, and give meaning explanations for them. We show that elements of coalgebras are determined by their elimination rules, whereas the introduction rules can be considered as derived. This is in contrast with algebraic data types, for which the opposite is true: elements are determined by their introduction rules, and the elimination rules can be considered as derived. In this sense, the function type from the logical framework is more like a coalgebraic data type, the elements of which are determined by the elimination rule. We illustrate why the simplest form of guarded recursion is nothing but the introduction rule originating from the formulation of coalgebras in category theory. We discuss restrictions needed in order to preserve decidability of equality. Dedicated to Per MartinLöf on the occasion of his retirement. 1.1
A Coalgebraic Calculus for Component Based Systems ∗
"... In this paper we describe the coalgebraic models for statebased software components and componentbased systems. The behaviour patterns of components are specified by strong monads. A family of operators for combining components based on the category of coalgebras are defined and a set of algebraic ..."
Abstract
 Add to MetaCart
In this paper we describe the coalgebraic models for statebased software components and componentbased systems. The behaviour patterns of components are specified by strong monads. A family of operators for combining components based on the category of coalgebras are defined and a set of algebraic laws are also presented to specify the properties being satisfied by these operators. 1