HANA: A Model of Type and Inheritance for Object-Oriented Programming Languages

dc.contributor.authorLee, Keung Haeen
dc.contributor.authorKafura, Dennis G.en
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2013-06-19T14:35:53Zen
dc.date.available2013-06-19T14:35:53Zen
dc.date.issued1990en
dc.description.abstractMost current object-oriented languages consider inheritance as subtyping. However, a type system which views inheritance as subtyping allows neither multiple representations of a type nor method exclusion without violating typing constraints. These problems and the difference between inheritance and subtyping have been well recognized recently. Another approach to subtyping found in the literature is to separate inheritance from subtyping. In this approach, subtyping is solely determined by inheritance conformance. While subtyping based on interface conformance can support multiple representations, it cannot distinguish intended conformance from accidental conformance. This paper describes a new model of type and inheritance, called HANA, in which subtyping and inheritance are not separated, although differentiated. The notion of subtyping in HANA is based on both inheritance and interface conformance. HANA integrates multiple inheritance multiple representations, method exclusion, and method name overloading with static typing. HANA extends other existing methods of inheritance and subtyping with enhanced expressive power, increased reusability, and program efficiency. We show that the differentiation made by HANA between inheritance and subtyping allows name collision to be resolved without compromising the integrity of the type system. The capability of excluding an inherited method without violating static typing offers a sound solution for resolving name collision in multiple inheritance when used together with other mechanisms. We show that the mechanisms of method exclusion, addition, and renaming are othogonal with respect to the power of resolving name collision in multiple inheritance.en
dc.format.mimetypeapplication/pdfen
dc.identifierhttp://eprints.cs.vt.edu/archive/00000189/en
dc.identifier.sourceurlhttp://eprints.cs.vt.edu/archive/00000189/01/TR-90-07.pdfen
dc.identifier.trnumberTR-90-07en
dc.identifier.urihttp://hdl.handle.net/10919/19545en
dc.language.isoenen
dc.publisherDepartment of Computer Science, Virginia Polytechnic Institute & State Universityen
dc.relation.ispartofHistorical Collection(Till Dec 2001)en
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.titleHANA: A Model of Type and Inheritance for Object-Oriented Programming Languagesen
dc.typeTechnical reporten
dc.type.dcmitypeTexten

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR-90-07.pdf
Size:
2.81 MB
Format:
Adobe Portable Document Format