AD-A 259 881 Family Values : A Semantic Notion of Subtyping

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 1llof their subtypes have in common. For this methodology to effective, it is necessary to * a clear understandiný 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.1lolds for its subtype objects. It presents two ways of-defining the sýbtype 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.

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

[2]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[3]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[4]  Stephen J. Garland,et al.  An Overview of LP, The Larch Power , 1989, RTA.

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

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

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

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

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

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

[11]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

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

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

[14]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

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

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

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

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