ABSTRACT
The arrangement of classes in a specialization hierarchy has proved to be a useful abstraction mechanism in class-based object oriented programming languages. The success of the mechanism is based on the high degree of code reuse that is offered, along with simple type conformance rules.
The opposite of specialization is generalization. We will argue that support of generalization in addition to specialization will improve class reusability. A language that only supports specialization requires the class hierarchy to be constructed in a top down fashion. Support for generalization will make it possible to create super-classes for already existing classes, hereby enabling exclusion of methods and creation of classes that describe commonalties among already existing ones.
We will show how generalization can coexist with specialization in class-based object oriented programming languages. Furthermore, we will verify that this can be achieved without changing the simple conformance rules or introducing new problems with name conflicts.
- 1.Andrew Black, Norman Hutchinson, Eric Jul, and Henry Levy. Object structure in the Emerald system. In OOPSLA '86 Object oriented programming systems, languages and applications. ACM, 1986. Google ScholarDigital Library
- 2.Andrew Black, Norman Hutchinson, Eric Jul, Henry Levy, and Larry Carter. Distribution and abstract types in Emerald. IEEE Transaction on Software Engineering, SE-13(1), January 1987. Google ScholarDigital Library
- 3.Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger M~ller-Pedersen, and Kristen Nygaard. The Beta Programming Language. In Bruce Shriver and Peter Wegner, editors, Research Directions in Object-Oriented Programming. MIT Press, Series in Computer Systems, 1987. Google ScholarDigital Library
- 4.Luca Caxdelli and Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing surveys, 17(4), December 1985. Google ScholarDigital Library
- 5.Ole-Johan Dalai, Bjorn Myrhaug, and Kristen Nygaard. SIMULA 67 Common Base Language. Norwegian Computing Center, February 1984.Google Scholar
- 6.Adele Goldberg and David Robson. Smalltalk- 80: The Language and its Implementation. Addison-Wesley Publishing Company, Xerox PaJo Alto Research Center, 1983. Google ScholarDigital Library
- 7.Chris Horn. Conformance, Genericity, Inheritance and Enhancement. In ECOOP'87 European Conference on Object-Oriented Programming. Springer-Verlag, 1987. Google ScholarDigital Library
- 8.Henry Lieberman. Using PrototypicM Objects to Implement Shared Behavior in Object Oriented Systems. In OOPSLA '86 Object oriented programming systems, languages and applications. ACM, 1986. Google ScholarDigital Library
- 9.J~rgen Lindskov Knudsen. Name collision in multiple classification hierarchies. In ECOOP ference on Object-Oriented Programming. Springer-Verlag, 1988. Google ScholarDigital Library
- 10.Jorgen Lindskov Knudsen and Kristine Stoug~rd Thomsen. A conceptual framework for programming languages. Publication PB- 192~ Computer Science Department, Aarhus University, Aarhus, Denmark, April 1985.Google Scholar
- 11.David Sandberg. An alternative to subclassing. In OOPSLA'86 Object oriented programming systems, languages and applications. ACM, 1986. Google ScholarDigital Library
- 12.Alan Snyder. inheritance and the Development of Encapsulated Software Components. In Bruce Shriver and Peter Wegner, editors, Research Directions in Object-Oriented Programming. MIT Press, Series in Computer Systems, 1987. Google ScholarDigital Library
- 13.Kristine Stoug~rd Thomsen. Multiple inheritance a structuring mechanism for data, process and procedures. Publication PB-209, Computer Science Department, Aarhus University, Aarhus, Denmark, April 1986.Google Scholar
- 14.Bjarne Stroustrup. The C~+ Programming Language. Addison Wesley, AT&T Bell Laboratories, Murray Hill, New Jersey, 1986. Google ScholarDigital Library
Index Terms
- Extending ordinary inheritance schemes to include generalization
Recommendations
Extending ordinary inheritance schemes to include generalization
Special issue: Proceedings of the 1989 ACM OOPSLA conference on object-oriented programmingThe arrangement of classes in a specialization hierarchy has proved to be a useful abstraction mechanism in class-based object oriented programming languages. The success of the mechanism is based on the high degree of code reuse that is offered, along ...
Class-Based Generalization and Specialization
CCATS '15: Proceedings of the 2015 International Conference on Computer Application TechnologiesThis paper proposes class-based generalization and specialization. The attributes common to subclasses (superclasses, respectively) are inherited upward (downward) to the superclass (subclass) in the ordinary generalization (specialization). The ...
Class-Based Generalization and Specialization
CCATS '15: Proceedings of the 2015 International Conference on Computer Application TechnologiesThis paper proposes class-based generalization and specialization. The attributes common to subclasses (superclasses, respectively) are inherited upward (downward) to the superclass (subclass) in the ordinary generalization (specialization). The ...
Comments