A New Definition of the Subtype Relation

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 presents a new definition of the subtype relation that ensures that any property proved about supertype objects also holds for subtype objects. It also discusses the ramifications of the definition on the design of type families.

[1]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .

[2]  Mark Schlack,et al.  Digital Equipment Corp. , 1993 .

[3]  Daniel C. Halbert,et al.  Using Types and Inheritance in Object-Oriented Programming , 1987, IEEE Software.

[4]  D. Kapur TOWARDS A THEORY FOR ABSTRACT DATA TYPES , 1980 .

[5]  Chris Smith,et al.  An Object Oriented Interpretation of LOTOS , 1989, FORTE.

[6]  Dennis McLeod,et al.  Database description with SDM: a semantic database model , 1981, TODS.

[7]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[8]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[9]  Gary T. Leavens,et al.  Reasoning about object-oriented programs that use subtypes , 1990, OOPSLA/ECOOP '90.

[10]  Kim B. Bruce,et al.  An algebraic model of sybtypes in object-oriented languages (draft) , 1986, OOPWORK '86.

[11]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[12]  Gary T. Leavens,et al.  Subtyping, Modular Specification, and Modular Verification for Applicative Object-Oriented Programs , 1994 .

[13]  Todd Leavens Gary Verifying object-oriented programs that use subtypes , 1989 .

[14]  Elspeth Cusack,et al.  Inheritance in Object-Oriented Z , 1991, ECOOP.

[15]  Pierre America,et al.  Designing an Object-Oriented Programming Language with Behavioural Subtyping , 1990, REX Workshop.

[16]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[17]  Pierre America,et al.  A parallel object-oriented language with inheritance and subtyping , 1990, OOPSLA/ECOOP '90.

[18]  Barry Mark Utting An object-oriented refinement calculus with modular reasoning , 1992 .

[19]  C.A. Vissers,et al.  Formal description techniques , 1983, Proceedings of the IEEE.

[20]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[21]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[22]  Jeannette M. Wing,et al.  Family Values: A Semantic Notion of Subtyping , 1992 .