Name Collision in Multiple Classification Hierarchies
Supporting multiple classification in object-oriented programming languages is the topic of discussion in this paper. Supporting multiple classification gives rise to one important question — namely the question of inheritance of attributes with identical names from multiple paths in the classification hierarchy. The problem is to decide how these multiple classification paths are reflected in the class being defined. One of the conclusions in this paper is, that by choosing strict and simple inheritance rules, one is excluding some particular usages of multiple classification. This leads to the notion of attribute-resolution at class definition, which means that the programmer in some cases is forced or allowed to resolve the potential ambiguity of the inherited names. The concept of attribute-resolution is managed through the identification of two conceptually different utilizations of specialization (unification and intersection), and two different attribute properties (plural and singleton) to guide the attribute-resolution.
KeywordsMultiple Classification Class Hierarchy Merge Attribute Multiple Inheritance Unification Class
Unable to display preview. Download preview PDF.
- 2.E. Blake & S. Cook: On Including Part Hierarchies in Object-Oriented Languages, with an Implementation in Smalltalk, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’87), Paris, France, June 1987.Google Scholar
- 3.D.G. Bobrow & M.J. Stefik: Loops — Data and Object-Oriented Programming for Interlisp, Discussion papers, Proceedings of the European Conference on AI, Orsay, France, July 1982.Google Scholar
- 5.A. Borning & D.H.H. Ingalls: Multiple Inheritance in Smalltalk-80, Proceedings of the National Conference on AI, Pittsburgh, PA, 1982.Google Scholar
- 6.L. Cardelli: Amber, AT&T Bell Labs Technical Memorandum, 11271-84092-410TM, 1984.Google Scholar
- 7.D.C. Halbert & P.D. O’Brien: Using Types and Inheritance in Object-Oriented Languages, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’87), Paris, France, June 1987.Google Scholar
- 8.J. Lindskov Knudsen & K. Stougård Thomsen: A Conceptual Framework for Programming Languages, Computer Science Department, Aarhus University, DAIMI PB-192, 1985.Google Scholar
- 9.B. Bruun Kristensen, O. Lehrmann Madsen, B. Møller-Pedersen & K. Nygaard: The Beta Progmmming Language, in B.D. Shriver & P. Wegner (eds.): Research Directions in Object-Oriented Programming, MIT Press, 1987.Google Scholar
- 11.B. Stroustrup: Multiple Inheritance for C++, Proceedings of the Spring’ 87 EUUG Conference, Helsinki and Stockholm, May 1987.Google Scholar
- 13.D. Weinreb & D. Moon: Flavors: Message Passing in the Lisp Machine, MIT A1 Memo No. 602, November 1980.Google Scholar