Results 1 
6 of
6
Sheaf Semantics for Concurrent Interacting Objects
 Mathematical Structures in Computer Science
, 1992
"... : This paper uses concepts from sheaf theory to explicate phenomena in concurrent systems, including object, inheritance, deadlock, and noninterference, as used in computer security. The approach is very general, and applies not only to concurrent object oriented systems, but also to systems of dif ..."
Abstract

Cited by 45 (5 self)
 Add to MetaCart
: This paper uses concepts from sheaf theory to explicate phenomena in concurrent systems, including object, inheritance, deadlock, and noninterference, as used in computer security. The approach is very general, and applies not only to concurrent object oriented systems, but also to systems of differential equations, electrical circuits, hardware description languges, and much more. Time can be discrete or continuous, linear or branching, and distribution is allowed over space as well as time. Concepts from category theory help to achieve this generality: objects are modeled by sheaves; inheritance by sheaf morphisms; systems by diagrams; and interconnections by diagrams of diagrams. In addition, behaviour is given by limit, and the result of interconnection by colimit. The approach is illustrated with many examples, including a semantics for a simple concurrent objectbased programming language. 1 Introduction Many popular formalisms for concurrent systems are syntactic (or "formal...
Aggregation in a Behavior Oriented Object Model
 OBJECTBASED DISTRIBUTED PROCESSING
, 1992
"... TROLL is a language to specify information systems with dynamic behavior. Here, we elaborate on the specification of object aggregation in TROLL. We distinguish between two kinds of aggregation, static and dynamic aggregation. Static aggregation means that the composition of objects is described usi ..."
Abstract

Cited by 24 (8 self)
 Add to MetaCart
TROLL is a language to specify information systems with dynamic behavior. Here, we elaborate on the specification of object aggregation in TROLL. We distinguish between two kinds of aggregation, static and dynamic aggregation. Static aggregation means that the composition of objects is described using predicates over constant properties. Dynamic aggregation means that we may alter the composition of objects by invoking special operations (events) that are implicitly defined for each dynamic complex object. Additionally, we describe the specification of disjoint complex as a means for structuring a specification. We introduce language features to describe object aggregation and give some hints towards their semantics.
Interconnection of Object Specifications
 Formal Methods and Object Technology
, 1996
"... ing yet further from reality, we might proscribe the simultaneous effect of two or more methods on an object's state; doing so, we impose a monoid structure on the fixed set of methods proper to an object class. Applying methods one after the other corresponds to multiplication in the monoid, and ap ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
ing yet further from reality, we might proscribe the simultaneous effect of two or more methods on an object's state; doing so, we impose a monoid structure on the fixed set of methods proper to an object class. Applying methods one after the other corresponds to multiplication in the monoid, and applying no methods corresponds to the identity of the monoid. A monoid is a set M with an associative binary operation ffl M : M \ThetaM ! M , usually referred to as `multiplication', which has an identity element e M 2 M . If M = (M; ffl M ; e M ) is a monoid, we often write just M for M, and e for e M ; moreover for m;m 0 2 M , we usually write mm 0 instead of m ffl M m 0 . For example, A , the set of lists containing elements of A, together with concatenation ++ : A \ThetaA ! A and the empty list [ ] 2 A , is a monoid. This example is especially important for the material in later sections. A monoid homomorphism is a structure preserving map between the carriers of ...
Tossing Algebraic Flowers down the Great Divide
 In People and Ideas in Theoretical Computer Science
, 1999
"... Data Types and Algebraic Semantics The history of programming languages, and to a large extent of software engineering as a whole, can be seen as a succession of ever more powerful abstraction mechanisms. The first stored program computers were programmed in binary, which soon gave way to assembly l ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Data Types and Algebraic Semantics The history of programming languages, and to a large extent of software engineering as a whole, can be seen as a succession of ever more powerful abstraction mechanisms. The first stored program computers were programmed in binary, which soon gave way to assembly languages that allowed symbolic codes for operations and addresses. fortran began the spread of "high level" programming languages, though at the time it was strongly opposed by many assembly programmers; important features that developed later include blocks, recursive procedures, flexible types, classes, inheritance, modules, and genericity. Without going into the philosophical problems raised by abstraction (which in view of the discussion of realism in Section 4 may be considerable), it seems clear that the mathematics used to describe programming concepts should in general get more abstract as the programming concepts get more abstract. Nevertheless, there has been great resistance to u...
Distributed Operational Semantics for the Object Paradigm
 Oxford University Computing Laboratory
, 1997
"... this paper we present an approach we call `Distributed Operational Semantics', which models systems of concurrent, interacting objects by diagrams which assign an operational semantics to each object in a system. The behaviour of the whole system is given by a limit construction. In modelling behavi ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
this paper we present an approach we call `Distributed Operational Semantics', which models systems of concurrent, interacting objects by diagrams which assign an operational semantics to each object in a system. The behaviour of the whole system is given by a limit construction. In modelling behaviour by limits we follow earlier work by Goguen on Categorical Systems Theory [4, 5, 6]. This approach pays particular attention to the hierarchical structure of systems, and provides means of constructing systems from component parts in a way that captures both complex objects and parallel composition with synchronisation [16]. The operational semantics of objects can be very general: for example, a semantics for the objectoriented specification language FOOPS has been given by modelling objects as unlabelled transition systems; this semantics is summarised in Section 4.2, and a full account is given in [2]. We shall also present examples of systems that use labelled transition systems. A useful property of the examples we present is that they can be readily translated into specifications in the logic programming language Eqlog [9], which provides both a simulator for the system and a logic for reasoning about systems. Like the sheaf semantics for concurrent objects originating with Goguen [8, 3] and further investigated in [22, 16, 2], our approach is essentially constraint based: interactions between objects constrain their possible behaviours, primarily by synchronising on shared subobjects. Constructing the behaviour of a system by taking its limit corresponds to solving those constraints. It is because of its constraint based nature that the translation into Eqlog is so natural. This paper provides a short introduction to Distributed Operational Semantics; a fuller acco...
Journal of the Brazilian Computer Society
"... Inspired by Meseguer and Montanari's "Petri Nets are Monoids", we propose that a reification of a Petri net is a special kind of net morphism were the target object is enriched with all conceivable sequential and concurrent computations. Then it is proven that while reification of nets satisfies t ..."
Abstract
 Add to MetaCart
Inspired by Meseguer and Montanari's "Petri Nets are Monoids", we propose that a reification of a Petri net is a special kind of net morphism were the target object is enriched with all conceivable sequential and concurrent computations. Then it is proven that while reification of nets satisfies the vertical compositionality requirement (i.e., reifications compose), it lacks the horizontal compositionality requirement (i.e., reification does not distribute over parallel composition). To achieve both requirements, a new categorial semantic domain based on labeled transition systems with full concurrency, called nonsequential automata, is constructed. Again, a class of morphisms stands for reification and, in this framework, the diagonal compositionality requirement (i.e., both vertical and horizontal) is achieved. Adjunctions between both models are provided extending the approach of Winskel and Nielsen. The steps of abstraction involved in moving between models show that nonsequential automata are more concrete than Petri nets. Moreover, categories of Petri Nets are isomorphic to subcategories of nonsequential automata.