Results 1 
6 of
6
Reasoning about Classes in ObjectOriented Languages: Logical Models and Tools
, 1998
"... A formal language ccsl is introduced for describing specifications of classes in objectoriented languages. We show how class specifications in ccsl can be translated into higher order logic. This allows us to reason about these specifications. In particular, it allows us (1) to describe (various) i ..."
Abstract

Cited by 34 (15 self)
 Add to MetaCart
A formal language ccsl is introduced for describing specifications of classes in objectoriented languages. We show how class specifications in ccsl can be translated into higher order logic. This allows us to reason about these specifications. In particular, it allows us (1) to describe (various) implementations of a particular class specification, (2) to develop the logical theory of a specific class specification, and (3) to establish refinements between two class specifications. We use the (dependently typed) higher order logic of the proofassistant pvs, so that we have extensive tool support for reasoning about class specifications. Moreover, we describe our own frontend tool to pvs, which generates from ccsl class specifications appropriate pvs theories and proofs of some elementary results.
Formalising Ontologies and Their Relations
 In Proceedings of DEXA’99
, 1999
"... . Ontologies allow the abstract conceptualisation of domains, but a given domain can be conceptualised through many different ontologies, which can be problematic when ontologies are used to support knowledge sharing. We present a formal account of ontologies that is intended to support knowledg ..."
Abstract

Cited by 28 (1 self)
 Add to MetaCart
. Ontologies allow the abstract conceptualisation of domains, but a given domain can be conceptualised through many different ontologies, which can be problematic when ontologies are used to support knowledge sharing. We present a formal account of ontologies that is intended to support knowledge sharing through precise characterisations of relationships such as compatibility and refinement. We take an algebraic approach, in which ontologies are presented as logical theories. This allows us to characterise relations between ontologies as relations between their classes of models. A major result is cocompleteness of specifications, which supports merging of ontologies across shared subontologies. 1 Introduction Over the last decade ontologies  best characterised as explicit specifications of a conceptualisation of a domain [17]  have become increasingly important in the design and development of knowledge based systems, and for knowledge representations generally. They...
Hidden Algebra for Software Engineering
 Proceedings Combinatorics, Computation and Logic
, 1999
"... : This paper is an introduction to recent research on hidden algebra and its application to software engineering; it is intended to be informal and friendly, but still precise. We first review classical algebraic specification for traditional "Platonic" abstract data types like integers, vectors, ma ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
: This paper is an introduction to recent research on hidden algebra and its application to software engineering; it is intended to be informal and friendly, but still precise. We first review classical algebraic specification for traditional "Platonic" abstract data types like integers, vectors, matrices, and lists. Software engineering also needs changeable "abstract machines," recently called "objects," that can communicate concurrently with other objects through visible "attributes" and statechanging "methods." Hidden algebra is a new development in algebraic semantics designed to handle such systems. Equational theories are used in both cases, but the notion of satisfaction for hidden algebra is behavioral, in the sense that equations need only appear to be true under all possible experiments; this extra flexibility is needed to accommodate the clever implementations that software engineers often use to conserve space and/or time. The most important results in hidden algebra are ...
A Birkhofflike Axiomatizability Result for Hidden Algebra and Coalgebra
, 2000
"... A characterization result for behaviorally definable classes of hidden algebras shows that a class of hidden algebras is behaviorally definable by equations if and only if it is closed under coproducts, quotients, morphisms and representative inclusions. The second part of the paper categorically ge ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
A characterization result for behaviorally definable classes of hidden algebras shows that a class of hidden algebras is behaviorally definable by equations if and only if it is closed under coproducts, quotients, morphisms and representative inclusions. The second part of the paper categorically generalizes this result to a framework of any category with coproducts, a final object and an inclusion system; this is general enough to include all coalgebra categories of interest. As a technical issue, the notions of equation and satisfaction are axiomatized in order to include the different approaches in the literature.
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...
Hidden Algebraic Engineering
 Conference on Semigroups and Algebraic Engineering
, 1997
"... : This paper outlines a research programme in algebraic engineering. It starts with a review of classical algebraic specification for abstract data types, such as integers, vectors, booleans, and lists. Software engineering also needs abstract machines, recently called "objects," that can communicat ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
: This paper outlines a research programme in algebraic engineering. It starts with a review of classical algebraic specification for abstract data types, such as integers, vectors, booleans, and lists. Software engineering also needs abstract machines, recently called "objects," that can communicate concurrently with other objects, and that have local states with visible "attributes" that are changed by inputs. Hidden algebra is a new development in algebraic semantics for such systems; its most important results are powerful hidden coinduction principles for proving behavioral properties, especially behavioral refinement. 1 Introduction In view of the title of this conference, I should confess to being an algebraic engineer in (perhaps) the following four different senses: 1. I use algebra to build real software systems. 2. I build huge algebras to help build software systems. 3. I build software tools to help deal with these huge algebras. 4. I build new kinds of algebra, to get be...