Abstract
The diverse inheritance mechanisms provided by Smalltalk, Beta, and CLOS are interpreted as different uses of a single underlying construct. Smalltalk and Beta differ primarily in the direction of class hierarchy growth. These inheritance mechanisms are subsumed in a new inheritance model based on composition of mixins, or abstract subclasses. This form of inheritance can also encode a CLOS multiple-inheritance hierarchy, although changes to the encoded hierarchy that would violate encapsulation are difficult. Practical application of mixin-based inheritance is illustrated in a sketch of an extension to Modula-3.
- 1 CARDELLI, L. A semantics of multiple inheritance. In Semantics of Data Types (1984), vol. 173 of Lecture Notes in Computer Science, Springer-Verlag, pp. 51-68. Google ScholarCross Ref
- 2 CARDELLI, L., DONAHUE,' J., GLASSMAN, L., JORDAN, M., }~{ALSOW, B., AND NELSON, G. Modula-3 report (revised). Tech. Rep. 52, Digital Equipment Corporation Systems Research Center, Dec. 1989.Google Scholar
- 3 COOK, W. A Denolalional Semantics of Inheritance. PhD thesis, Brown University, 1989. Google ScholarDigital Library
- 4 COOK, W., AND PALSBERG, J. A denotational semantics of inheritance and its correctness. In Proc. of A CM Conf. on Object-Oriented Programming, Systems, Languages and Applications (1989), pp. 433-444. Google ScholarDigital Library
- 5 DAHL, O.-J., MYHRHAUG, B., AND NYGAARD, K. The SIMULA 67 common base language. Tech. rep., Norwegian Computing Center, Oslo, Norway, 1970. Publication S-22.Google Scholar
- 6 DEMICHIEL, L., AND GABRIEL, R. The Common Lisp Object System: An overview. In European Conference on Object-Oriented Programming (june 1987), pp. 151-170. Google ScholarDigital Library
- 7 DUCOURNAU, P~., AND HABIB, M. On some algorithms for multiple inheritance in object-oriented programming. In European Conference on Object- Oriented Programming (1987), pp. 243-252. Google ScholarDigital Library
- 8 GOLDBERG, A., AND ROBSON, D. Smalltalk-80: the Language and Its Implementation. Addison- Wesley, 1983. Google ScholarDigital Library
- 9 KEENE, S. }3. Object-Oriented Programming in Common Lisp. Addison-Wesley, 1989. Google ScholarDigital Library
- 10 KRISTENSEN, B. B., MADSEN, O. L., MOLLER.- PBDERSEN, B., AND NYGAARD, K. The Beta programming language. In Research Directions in Object-Oriented Programming. MIT Press, 1987, pp. 7-48. Google Scholar
- 11 KRISTENSEN, B. B., MADSEN, O. L., MOLLER- PEDERSON, B., AND NYGAARD, Z. The Beta programming language - a Scandinavian approach to object-oriented programming, Oct. 1989. OOPSLA Tutorial Notes.Google Scholar
- 12 KRISTENSEN, B. B., MADSEN, 0. L., MOLLER.- PENDER.SEN, B., AND NYGAARD, K. Abstraction mechanisms in the Beta programming language. Information and Control (1983).Google Scholar
- 13 MOON, D. A. Object-oriented programming with Flavors. In Proc. of A CM Conf. on Object-Oriented Programming, Systems, Languages and Applications (1986), pp. 1-8. Google ScholarDigital Library
- 14 PAPAZOGLOU, M. P., GEORGIADIS, P. I., AND MARITSAS, D. G. An outline of the programming language Simula. Computer Language 9, 2 (1984), 107-131. Google ScholarDigital Library
- 15 REDDY, U. S. Objects as closures: Abstract semantics of object-oriented languages. In Proc. A CM Conf. on Lisp and Functional Programming (1988), pp. 289-297. Google ScholarDigital Library
- 16 SNYDER., A. Encapsulation and inheritance in object-oriented programming languages. In Proc. of A CM Conf. on Object-Oriented Programming, Systems, Languages and Applications (1986), pp. 38-45. Google ScholarDigital Library
- 17 SNYDER, A. Inheritance and the development of encapsulated software systems. In Research Directions in Object-Oriented Programming. MIT Press, 1987, pp. 165-188. Google ScholarDigital Library
- 18 WAND, M. Type inference for record concatenation and multiple inheritance. In Proc. IEEE Symposium on Logic in Computer Science (1989), pp. 92- 97. Google ScholarDigital Library
- 19 WEGNER, P., AND ZDONIK, S. B. Inheritance as a mechanism for incremental modification. In European Conference on Object-Oriented Programming (1988), pp. 55-77. Google ScholarDigital Library
Index Terms
- Mixin-based inheritance
Recommendations
Encapsulation and inheritance in object-oriented programming languages
OOPSLA '86: Conference proceedings on Object-oriented programming systems, languages and applicationsObject-oriented programming is a practical and useful programming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except ...
Mixin-based inheritance
OOPSLA/ECOOP '90: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applicationsThe diverse inheritance mechanisms provided by Smalltalk, Beta, and CLOS are interpreted as different uses of a single underlying construct. Smalltalk and Beta differ primarily in the direction of class hierarchy growth. These inheritance mechanisms are ...
On the notion of inheritance
One of the most intriguing—and at the same time most problematic—notions in object-oriented programing is inheritance. Inheritance is commonly regarded as the feature that distinguishes object-oriented programming from other modern programming paradigms,...
Comments