Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M., Lamport, L.: The existence of refinement mappings. Digital Equipment Corp. Sys. Research Ctr. Tech Rpt. 29, 1988.
America, P.: A parallel object-oriented language with inheritance and subtyping. ACM SIGPLAN 25 (1990) 161–168.
America, P.: Designing an object-oriented programming language with behavioural subtyping. Foundations of Object-Oriented Languages, REX School/Workshop, Noordwijkerhout, The Netherlands, Springer-Verlag Lec. Notes in Com. Sci. 489 (1991) 60–90.
Bruce, K. B., Wegner, P.: An algebraic model of subtypes in object-oriented languages (draft). ACM SIGPLAN Notices 21 (1986).
Cardelli, L.: A semantics of multiple inheritance. Info. and Computation 76 (1988) 138–164.
Elspeth Cusack: Refinement, conformance, and inheritance. Formal Aspects of Computing. 3(2), (1991), 129–141.
Elspeth Cusack: Inheritance in object oriented Z. Proceedings of ECOOP’ 91, 1991.
Elspeth Cusack, Steve Rudkin, and Chris Smith: An object oriented interpretation of LOTOS. Formal Description Techniques, II, S.T. Vuong (ed.). Elsevier Science Publishers B.V. (North-Holland) (1990), 211–226.
Dhara, K. K.: Subtyping among mutable types in object-oriented programming languages. Iowa State University Ames, Iowa, 1992.
Dijkstra, E. W.: A Discipline of Programming. Prentice Hall, New York, 1976.
Halbert, D. C, O’Brien, P. D.: Using types and inheritance in object-oriented programming. IEEE Software (1987) 71–79.
Hammer, M., McLeod, D.: A semantic database model. ACM Trans. Database Systems 6 (1981) 351–386.
Hoare, C. A. R.: Proof of correctness of data representations. Acta Informatica 1 (1972) 271–281.
Kapur, K.: Towards a theory of abstract data types. Tech. Rpt. 237, MIT Lab. for Computer Science, Cambridge, MA, 1980.
Leavens, G.: Verifying object-oriented prograsm that use subtypes. Tech. Rpt. 439, MIT Lab. for Computer Science, Cambridge, MA, 1989.
Leavens, G., Weihl, W. E.: Reasoning about object-oriented programs that use subtypes. ECOOP/OOPSLA’ 90 Proceedings, 1990.
Leavens, G., Weihl, W.E.: Subtyping, modular specification, and modular verification for applicative object-oriented programs. (forthcoming).
Lipeck, U.: Semantics and usage of defaults in specifications. Foundations of In formation Systems Specification and Design, Hans-Dieter Ehrich and Joseph A Goguen and Amilcar Sernadas Dagstuhl Seminar 9212, Rpt. 35, 1992.
Liskov, B., Guttag, J.: Abstraction and Specification in Program Design. McGraw Hill and MIT Press, 1985.
Liskov, B., Wing, J. M.: Family Values: A Semantic Notion of Subtyping. MIT-LCS-TR-562, Tech. Rpt., December 1992. Also published as CMU-CS-92-220 TR.
Meyer, B.: Object-oriented Software Construction. Prentice Hall, New York, 1988.
Morgan, C: Programming from Specifications. Prentice Hall, New York, 1990.
Nelson, G. (Ed.): Systems Programming with Modula-3. Prentice Hall, New York, 1991.
Schaffert, C, Cooper, T., Wilpolt, C: Trellis: object-based environment language reference manual. Dig. Equip. Corp. Eastern Research Lab., Tech Rpt. 372, 1985.
Utting, M.: An object-oriented refinement calculus with modular reasoning. University of New South Wales, Australia, 1992.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Liskov, B., Wing, J.M. (1993). A New Definition of the Subtype Relation. In: Nierstrasz, O.M. (eds) ECOOP’ 93 — Object-Oriented Programming. ECOOP 1993. Lecture Notes in Computer Science, vol 707. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47910-4_8
Download citation
DOI: https://doi.org/10.1007/3-540-47910-4_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57120-9
Online ISBN: 978-3-540-47910-9
eBook Packages: Springer Book Archive