Results 1 - 10
of
27
Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations
- Theoretical Computer Science
, 1992
"... This paper generalizes many-sorted algebra (hereafter, MSA) to order-sorted algebra (hereafter, OSA) by allowing a partial ordering relation on the set of sorts. This supports abstract data types with multiple inheritance (in roughly the sense of object-oriented programming), several forms of pol ..."
Abstract
-
Cited by 203 (34 self)
- Add to MetaCart
This paper generalizes many-sorted algebra (hereafter, MSA) to order-sorted algebra (hereafter, OSA) by allowing a partial ordering relation on the set of sorts. This supports abstract data types with multiple inheritance (in roughly the sense of object-oriented programming), several forms of polymorphism and overloading, partial operations (as total on equationally defined subsorts), exception handling, and an operational semantics based on term rewriting. We give the basic algebraic constructions for OSA, including quotient, image, product and term algebra, and we prove their basic properties, including Quotient, Homomorphism, and Initiality Theorems. The paper's major mathematical results include a notion of OSA deduction, a Completeness Theorem for it, and an OSA Birkhoff Variety Theorem. We also develop conditional OSA, including Initiality, Completeness, and McKinsey-Malcev Quasivariety Theorems, and we reduce OSA to (conditional) MSA, which allows lifting many known MSA results to OSA. Retracts, which intuitively are left inverses to subsort inclusions, provide relatively inexpensive run-time error handling. We show that it is safe to add retracts to any OSA signature, in the sense that it gives rise to a conservative extension. A final section compares and contrasts many different approaches to OSA. This paper also includes several examples demonstrating the flexibility and applicability of OSA, including some standard benchmarks like STACK and LIST, as well as a much more substantial example, the number hierarchy from the naturals up to the quaternions.
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 first-order functional language that is rigorously based on ..."
Abstract
-
Cited by 118 (29 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 first-order 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.
Inheritance As Implicit Coercion
- Information and Computation
, 1991
"... . We present a method for providing semantic interpretations for languages with a type system featuring inheritance polymorphism. Our approach is illustrated on an extension of the language Fun of Cardelli and Wegner, which we interpret via a translation into an extended polymorphic lambda calculus. ..."
Abstract
-
Cited by 104 (3 self)
- Add to MetaCart
. We present a method for providing semantic interpretations for languages with a type system featuring inheritance polymorphism. Our approach is illustrated on an extension of the language Fun of Cardelli and Wegner, which we interpret via a translation into an extended polymorphic lambda calculus. Our goal is to interpret inheritances in Fun via coercion functions which are definable in the target of the translation. Existing techniques in the theory of semantic domains can be then used to interpret the extended polymorphic lambda calculus, thus providing many models for the original language. This technique makes it possible to model a rich type discipline which includes parametric polymorphism and recursive types as well as inheritance. A central difficulty in providing interpretations for explicit type disciplines featuring inheritance in the sense discussed in this paper arises from the fact that programs can type-check in more than one way. Since interpretations follow the type...
Automatically Checking an Implementation against Its Formal Specification
- IEEE Transactions on Software Engineering
, 2000
"... - ..."
Using Dynamic Classes and Role Classes to Model Object Migration
, 1995
"... In this paper, we argue that object-oriented models must be able to represent three kinds of taxonomic structures: static classes, dynamic classes, and role classes, that behave differently with respect to object migration. If CAR is a static subclass of V EHICLE, then a vehicle that is not a car ..."
Abstract
-
Cited by 35 (2 self)
- Add to MetaCart
In this paper, we argue that object-oriented models must be able to represent three kinds of taxonomic structures: static classes, dynamic classes, and role classes, that behave differently with respect to object migration. If CAR is a static subclass of V EHICLE, then a vehicle that is not a car can never migrate to the CAR subclass. On the other hand, if EMP loyee is a dynamic subclass of PERSON object class, then a PERSON that is not an employee may migrate to EMP . In both cases, an instance of the subclass is identical to an instance of the superclass. By contrast, if EMP is modeled as a role class of PERSON , then every employee differs from every person, but a PERSON instance can acquire one or more EMP instances as roles. The distinctions between the three kinds of classes are orthogonal, so that we can have, for example, dynamic subclasses of object or role classes, or role classes of dynamic or static classes. The paper is divided into two parts. In the first, infor...
Equational Specification of Dynamic Objects
- Object-Oriented Databases: Analysis, Design & Construction (DS-4), Proc. IFIP WG 2.6 Working Conference, Windermere (UK
, 1990
"... An equational language to specify object-oriented conceptual models is defined. Objects are considered to be characterized by a unique object identifier and have static and dynamic structure. Examples of static structure are classification, aggregation, generalization and grouping, examples of dynam ..."
Abstract
-
Cited by 31 (6 self)
- Add to MetaCart
An equational language to specify object-oriented conceptual models is defined. Objects are considered to be characterized by a unique object identifier and have static and dynamic structure. Examples of static structure are classification, aggregation, generalization and grouping, examples of dynamic structure are events, processes, local (intra-object) and global (inter-object) and communication. The language, called CMSL, has a declarative (algebraic) semantics, which is divided into two. The part of CMSL that can be used to specify static structures has an initial algebra semantics, in which the data elements are object versions. The part dealing with process has a larger algebra as semantics; in this paper we use an algebra of graphs modulo bisimulation equivalence. About both models can be reasoned using standard equational logic. Apart from the combination of static and dynamic features of objects in an algebraic framework, and the joint specification of this in an equational la...
Relating CASL with Other Specification Languages: the Institution Level
, 2000
"... In this work, we investigate various specification languages and their relation to Casl, the recently developed Common Algebraic Specification Language. In particular, we consider the languages Larch, OBJ3, CafeOBJ, ACT ONE, ASF, and HEP-theories, as well as various sublanguages of Casl that more or ..."
Abstract
-
Cited by 30 (13 self)
- Add to MetaCart
In this work, we investigate various specification languages and their relation to Casl, the recently developed Common Algebraic Specification Language. In particular, we consider the languages Larch, OBJ3, CafeOBJ, ACT ONE, ASF, and HEP-theories, as well as various sublanguages of Casl that more or less directly correspond to these. All these languages are translated to an appropriate sublanguage of Casl. The translation mainly concerns the level of specification in-the-small: the logics underlying the languages are formalized as institutions, and representations among the institutions are developed. However, it is also considered how these translations interact with specification in-the-large. Thus, we obtain one hand translations of any of the abovementioned specification languages to an appropriate sublanguage of Casl. This allows us to take libraries and case studies that have been developed for other languages and re-use them in Casl. On the other hand, we set up institution repre...
Roles and Dynamic Subclasses: A Modal Logic Approach
- In Proceedings of European Conference on Object-Oriented Programming
, 1994
"... In this paper, we argue that object-oriented models must be able to represent three kinds of taxonomic structures: static subclasses, dynamic subclasses and role classes. If CAR is a static subclass of V EHICLE, then a vehicle that is not a car can never migrate to the CAR subclass. If EMP loyee is ..."
Abstract
-
Cited by 26 (4 self)
- Add to MetaCart
In this paper, we argue that object-oriented models must be able to represent three kinds of taxonomic structures: static subclasses, dynamic subclasses and role classes. If CAR is a static subclass of V EHICLE, then a vehicle that is not a car can never migrate to the CAR subclass. If EMP loyee is a dynamic subclass of PERSON , then a PERSON that is not an employee may migrate to EMP . In both cases, an instance of the subclass is identical to an instance of the superclass. Finally, if EMP is modeled as a role class of PERSON every employee differs from every person, but a PERSON instance can acquire one or more EMP instances as roles. We outline an approach to formalizing these taxonomic structures in order-sorted dynamic logic with equality. Keywords: Theoretical foundations, formal methods, OO analysis and design February 2, 1994 Contents 1 Introduction 1 2 Methodological aspects of role-playing and class migration 1 2.1 Object classification and identification : : : : : : : : :...
A Formalization of Objects Using Equational Dynamic Logic
, 1991
"... Order-sorted equational logic is extended with dynamic logic to a specification language for dynamic objects. Special attention is paid to different concepts of encapsulation that play a role in object-orientation. It is argued that the resulting language, CMSL, meets those requirements of the ob ..."
Abstract
-
Cited by 24 (9 self)
- Add to MetaCart
Order-sorted equational logic is extended with dynamic logic to a specification language for dynamic objects. Special attention is paid to different concepts of encapsulation that play a role in object-orientation. It is argued that the resulting language, CMSL, meets those requirements of the object-oriented database system manifesto [6] that are applicable to object-oriented conceptual models (as opposed to OO databases).
Extended ML: an institution-independent framework for formal program development
- PROC. WORKSHOP ON CATEGORY THEORY AND COMPUTER PROGRAMMING
, 1986
"... The Extended ML specification language provides a framework for the formal stepwise development of modular programs in the Standard ML programming language from specifications. The object of this paper is to equip Extended ML with a semantics which is completely independent of the logical system use ..."
Abstract
-
Cited by 19 (10 self)
- Add to MetaCart
The Extended ML specification language provides a framework for the formal stepwise development of modular programs in the Standard ML programming language from specifications. The object of this paper is to equip Extended ML with a semantics which is completely independent of the logical system used to write specifications, building on Goguen and Burstall's work on the notion of an institution as a formalisation of the concept of a logical system. One advantage of this is that it permits freedom in the choice of the logic used in writing specifications; an intriguing side-effect is that it enables Extended ML to be used to develop programs in languages other than Standard ML since we view programs as simply Extended ML specifications which happen to include only "executable" axioms. The semantics of Extended ML is defined in terms of the primitive specification-building operations of the ASL kernel specification language which itself has an institution-independent semantics. It is no...

