An algebraic theory of class specification
- 1 April 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 3 (2) , 166-199
- https://doi.org/10.1145/192218.192235
Abstract
The notion of class (or object pattern) as defined in most object-oriented languages is formalized using known techniques from algebraic specifications. Inheritance can be viewed as a relation betweeen classes, which suggests how classes can be arranged in hierarchies. The hierarchies contain two kinds of information: on the one hand, they indicate how programs are structured and how code is shared among classes; on the other hand, they give information about compatible assignment rules, which are based on subtyping. In order to distinguish between code sharing, which is related to implementational aspects, and functional specialization, which is connected to the external behavior of objects, we introduce an algebraic specification-based formalism, by which one can specify the behavior of a class and state when a class inherits another one. It is shown that reusing inheritance can be reduced to specialization inheritance with respect to a virtual class. The class model and the two distinct aspects of inheritance allow the definition of clean interconnection mechanisms between classes leading to new classes which inherit from old classes their correctness and their semantics.Keywords
This publication has 13 references indexed in Scilit:
- CLOSCommunications of the ACM, 1991
- An object-oriented Tower Of BabelACM SIGPLAN OOPS Messenger, 1991
- Surveying current research in object-oriented designCommunications of the ACM, 1990
- Strong typing of object-oriented languages revisitedPublished by Association for Computing Machinery (ACM) ,1990
- Virtual classes: a powerful mechanism in object-oriented programmingACM SIGPLAN Notices, 1989
- Union and actualization of module specifications: Some compatibility resultsJournal of Computer and System Sciences, 1987
- Algebraic specification of modules and their basic interconnectionsJournal of Computer and System Sciences, 1987
- Inheritance and Subtyping in a Parallel Object-Oriented LanguagePublished by Springer Nature ,1987
- Partial composition and recursion of module specificationsPublished by Springer Nature ,1987
- Encapsulation and inheritance in object-oriented programming languagesPublished by Association for Computing Machinery (ACM) ,1986