A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Behavioural subtyping using invariants and constraints
Formal methods for distributed processing
Using Term Rewriting to Verify Software
IEEE Transactions on Software Engineering
A New Definition of the Subtype Relation
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Hi-index | 0.00 |
The use of hierarchy is an important component of object-oriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be effective, it is necessary to have a clear understanding of how subtypes and supertypes are related. This paper takes the position that the relationship should ensure that any property proved about supertype objects also holds for its subtype objects. It presents two ways of defining the subtype relation, each of which meets this criterion, and each of which is easy for programmers to use. The paper also discusses the ramifications of this notion on the design of type families and on the contents of type specifications and presents a notation for specifying types formally.