Results 1  10
of
71
A Hidden Agenda
 Theoretical Computer Science
, 2000
"... This paper publicly reveals, motivates, and surveys the results of an ambitious hidden agenda for applying algebra to software engineering. The paper reviews selected literature, introduces a new perspective on nondeterminism, and features powerful hidden coinduction techniques for proving behaviora ..."
Abstract

Cited by 136 (23 self)
 Add to MetaCart
This paper publicly reveals, motivates, and surveys the results of an ambitious hidden agenda for applying algebra to software engineering. The paper reviews selected literature, introduces a new perspective on nondeterminism, and features powerful hidden coinduction techniques for proving behavioral properties of concurrent systems, especially renements; some proofs are given using OBJ3. We also discuss where modularization, bisimulation, transition systems and combinations of the object, logic, constraint and functional paradigms t into our hidden agenda. 1 Introduction Algebra can be useful in many dierent ways in software engineering, including specication, validation, language design, and underlying theory. Specication and validation can help in the practical production of reliable programs, advances in language design can help improve the state of the art, and theory can help with building new tools to increase automation, as well as with showing correctness of the whole e...
Introducing OBJ
, 1993
"... This is an introduction to the philosophy and use of OBJ, emphasizing its operational semantics, with aspects of its history and its logical semantics. Release 2 of OBJ3 is described in detail, with many examples. OBJ is a wide spectrum firstorder functional language that is rigorously based on ..."
Abstract

Cited by 135 (30 self)
 Add to MetaCart
This is an introduction to the philosophy and use of OBJ, emphasizing its operational semantics, with aspects of its history and its logical semantics. Release 2 of OBJ3 is described in detail, with many examples. OBJ is a wide spectrum firstorder functional language that is rigorously based on (order sorted) equational logic and parameterized programming, supporting a declarative style that facilitates verification and allows OBJ to be used as a theorem prover.
Logical Support for Modularisation
 LOGICAL ENVIRONMENTS
, 1993
"... Modularisation is important for managing the complex structures that arise in large theorem proving problems, and in large software and/or hardware development projects. This paper studies some properties of logical systems that support the definition, combination, parameterisation and reuse of ..."
Abstract

Cited by 97 (31 self)
 Add to MetaCart
Modularisation is important for managing the complex structures that arise in large theorem proving problems, and in large software and/or hardware development projects. This paper studies some properties of logical systems that support the definition, combination, parameterisation and reuse of modules. Our results show some new connections among: (1) the preservation of various kinds of conservative extension under pushouts; (2) various distributive laws for information hiding over sums; and (3) (Craig style) interpolation properties. In addition, we study differences between syntactic and semantic formulations of conservative extension properties, and of distributive laws. A model theoretic property that we call exactness plays an important role in some results. This paper explores the interplay between syntax and semantics, and thus lies in the tradition of abstract model theory. We represent logical systems as institutions. An important technical foundation is a new ...
Towards an Algebraic Semantics for the Object Paradigm
 In Hartmut Ehrig and Fernando Orejas, editors, Proceedings, Tenth Workshop on Abstract Data Types
, 1994
"... This paper surveys our current state of knowledge (and ignorance) on the use of hidden sorted algebra as a foundation for the object paradigm. Our main goal is to support equational reasoning about properties of concurrent systems of objects, because of its simple and ecient mechanisation. We sho ..."
Abstract

Cited by 86 (34 self)
 Add to MetaCart
This paper surveys our current state of knowledge (and ignorance) on the use of hidden sorted algebra as a foundation for the object paradigm. Our main goal is to support equational reasoning about properties of concurrent systems of objects, because of its simple and ecient mechanisation. We show how equational speci cations can describe objects, inheritance and modules; our treatment of the latter topic emphasises the importance of reuse, and the r^ole of the socalled Satisfaction Condition. We then consider how to prove things about objects, how to unify the object and logic paradigms by using logical variables that range over objects, and how to connect objects into concurrent systems.
Objects and Classes, Coalgebraically
 ObjectOrientation with Parallelism and Persistence
, 1995
"... The coalgebraic perspective on objects and classes in objectoriented programming is elaborated: objects consist of a (unique) identifier, a local state, and a collection of methods described as a coalgebra; classes are coalgebraic (behavioural) specifications of objects. The creation of a "n ..."
Abstract

Cited by 74 (18 self)
 Add to MetaCart
(Show Context)
The coalgebraic perspective on objects and classes in objectoriented programming is elaborated: objects consist of a (unique) identifier, a local state, and a collection of methods described as a coalgebra; classes are coalgebraic (behavioural) specifications of objects. The creation of a "new" object of a class is described in terms of the terminal coalgebra satisfying the specification. We present a notion of "totally specified" class, which leads to particularly simple terminal coalgebras. We further describe local and global operational semantics for objects. Associated with the local operational semantics is a notion of bisimulation (for objects belonging to the same class), expressing observational indistinguishability. AMS Subject Classification (1991): 18C10, 03G30 CR Subject Classification (1991): D.1.5, D.2.1, E.1, F.1.1, F.3.0 Keywords & Phrases: object, class, (terminal) coalgebra, coalgebraic specification, bisimulation 1. Introduction Within the objectoriente...
Circular Coinductive Rewriting
 In Proceedings of Automated Software Engineering 2000
, 2000
"... Circular coinductive rewriting is a new method for proving behavioral properties, that combines behavioral rewriting with circular coinduction. This method is implemented in our new BOBJ behavioral specification and computation system, which is used in examples throughout this paper. These examples ..."
Abstract

Cited by 51 (13 self)
 Add to MetaCart
Circular coinductive rewriting is a new method for proving behavioral properties, that combines behavioral rewriting with circular coinduction. This method is implemented in our new BOBJ behavioral specification and computation system, which is used in examples throughout this paper. These examples demonstrate the surprising power of circular coinductive rewriting. The paper also sketches the underlying hidden algebraic theory and briefly describes BOBJ and some of its algorithms.
Hiding More of Hidden Algebra
 FM'99  Formal Methods
, 1999
"... This paper generalizes the hidden algebra approach to allow: (P1) operations with multiple hidden arguments, and (P2) defining behavioral equivalence with a subset of operations, in addition to the already present (P3) builtin data types, (P4) nondeterminism, (P5) concurrency, and (P6) noncongruen ..."
Abstract

Cited by 42 (17 self)
 Add to MetaCart
This paper generalizes the hidden algebra approach to allow: (P1) operations with multiple hidden arguments, and (P2) defining behavioral equivalence with a subset of operations, in addition to the already present (P3) builtin data types, (P4) nondeterminism, (P5) concurrency, and (P6) noncongruent operations. All important results generalize, but more elegant formulations use the new institution in Section 5. Behavioral satisfaction appeared 1981 in [20], hidden algebra 1989 in [9], multiple hidden arguments 1992 in [1], congruent and behavioral operations in [1, 18], behavioral equivalence defined by a subset of operations in [1], and noncongruent operations in [5]; all this was previously integrated in [21], but this paper gives new examples, institutions, and results relating hidden algebra to information hiding. We assume familiarity with basics of algebraic specification, e.g., [11, 13].
An ImplementationOriented Semantics for Module Composition
, 1997
"... This paper describes an approach to module composition by executing "module expressions" to build systems out of component modules; the paper also gives a novel semantics intended to aid implementers. The semantics is based on set theoretic notions of tuple set, partial signature, and inst ..."
Abstract

Cited by 32 (12 self)
 Add to MetaCart
(Show Context)
This paper describes an approach to module composition by executing "module expressions" to build systems out of component modules; the paper also gives a novel semantics intended to aid implementers. The semantics is based on set theoretic notions of tuple set, partial signature, and institution, thus avoiding more difficult mathematics theory. Language features include information hiding, both vertical and horizontal composition, and views for binding modules to interfaces. Vertical composition refers to the hierarchical structuring of a system into layers, while horizontal composition refers to the structure of a given layer. Modules may involve information hiding, and views may involve behavioral satisfaction of a theory by a module. Several "Laws of Software Composition" are given, which show how the various module composition operations relate. Taken together, this gives foundations for an algebraic approach to software engineering. 1.1 Introduction The approach to module compos...
Horizontal and Vertical Structuring of Typed Graph Transformation Systems
, 1996
"... this paper we concentrate on structuring and refinement concepts for graph transformation systems. Conceptually, we distinguish between two kinds of structuring. We speak of horizontal structuring if a large specification is obtained by combining and modifying smaller ones, possibly sharing some com ..."
Abstract

Cited by 32 (19 self)
 Add to MetaCart
this paper we concentrate on structuring and refinement concepts for graph transformation systems. Conceptually, we distinguish between two kinds of structuring. We speak of horizontal structuring if a large specification is obtained by combining and modifying smaller ones, possibly sharing some common parts. Instead, if we consider the relationship between a more abstract and a more concrete version of the same specification, or between a specification and its implementation, we speak of vertical structuring.
Proving Correctness Of Refinement And Implementation
, 1996
"... The notions of state and observable behaviour are fundamental to many areas of computer science. Hidden sorted algebra, an extension of many sorted algebra, captures these notions through hidden sorts and the behavioural satisfaction of equations. This makes it a powerful formalisation of abstract m ..."
Abstract

Cited by 28 (4 self)
 Add to MetaCart
The notions of state and observable behaviour are fundamental to many areas of computer science. Hidden sorted algebra, an extension of many sorted algebra, captures these notions through hidden sorts and the behavioural satisfaction of equations. This makes it a powerful formalisation of abstract machines, and many results suggest that it is also suitable for the semantics of the object paradigm. Another extension of many sorted algebra, namely order sorted algebra, has proved useful in system specification and prototyping because of the way it handles subtypes and errors. The combination of these two algebraic approaches, hidden order sorted algebra, has also been proposed as a foundation for object paradigm, and has much promise as a foundation for Software Engineering. This paper extends recent work on hidden order sorted algebra by investigating the refinement and implementation of hidden order sorted specifications. We present definitions of refinement and implementation for suc...