The C++ programming language
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Encapsulation and inheritance in object-oriented programming languages
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Partial composition and recursion of module specifications
The International Joint Conference on theory and practice of software development on TAPSOFT '87
Algebraic specification of modules and their basic interconnections
Journal of Computer and System Sciences
Union and actualization of module specifications: some compatibility results
Journal of Computer and System Sciences
Inheritance and subtyping in a parallel object-oriented language
European conference on object-oriented programming on ECOOP '87
Research directions in object-oriented programming
The Trellis programming environment
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Dimensions of object-based language design
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Initial behavior semantics for algebraic specifications
Lecture notes in Computer Science on Recent trends in data type specification
Inheritance as an incremental modification mechanism or what like is and isn'tlike
on ECOOP '88 (European Conference on Object-Oriented Programming)
GSBL: an algebraic specification language based on inheritance
on ECOOP '88 (European Conference on Object-Oriented Programming)
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Fundamentals of algebraic specification 2: module specifications and constraints
Fundamentals of algebraic specification 2: module specifications and constraints
Surveying current research in object-oriented design
Communications of the ACM
Strong typing of object-oriented languages revisited
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
CLOS: integrating object-oriented and functional programming
Communications of the ACM - Special issue on LISP
Handbook of theoretical computer science (vol. B)
An object-oriented Tower Of Babel
ACM SIGPLAN OOPS Messenger
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Algebraic Specification Techniques in Object Oriented Programming Environments
Algebraic Specification Techniques in Object Oriented Programming Environments
An Algebraic View of Inheritance and Subtyping in Object Oriented Programming
ESEC '91 Proceedings of the 3rd European Software Engineering Conference
OOZE: An Object Oriented Z Environment
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Proceedings of the Carnegie Mellon Workshop on Logic of Programs
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
Product and Iteration of Module Specifications
CAAP '88 Proceedings of the 13th Colloquium on Trees in Algebra and Programming
A Theory of Software Reusability
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Generic Facilities in Object-Oriented ASMs
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
Proof-theoretic foundations for the design of actor systems
Mathematical Structures in Computer Science
Modal logics for reasoning about object-based component composition
IW-FM'00 Proceedings of the 4th Irish conference on Formal Methods
Hi-index | 0.00 |
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.