Classification of actions or Inheritance also for methods
The main thing with the sub-class mechanism as found in languages like C++, SIMULA and Smalltalk is its possibility to express specializations. A general class, covering a wide range of objects, may be specialized to cover more specific objects. This is obtained by three properties of sub-classing: An object of a sub-class inherits the attributes of the super-class, virtual procedure/method attributes (of the super-class) may be specialized in the sub-class, and (in SIMULA only) it inherits the actions of the super-class.
In the languages mentioned above, virtual procedures/methods of a super-class are specialized in sub-classes in a very primitive manner: they are simply re-defined and need not bear any resemblance of the virtual in the super-class. In BETA, a new object-oriented language, classes and methods are unified into one concept, and by an extension of the virtual concept, virtual procedures/methods in sub-classes are defined as specializations of the virtuals in the super-class. The virtual procedures/methods of the sub-classes thus inherits the attributes (e.g. parameters) and actions from the “super-procedure/method”.
In the languages mentioned above only procedures/methods may be virtual. As classes and procedures/methods are unified in BETA this gives also virtual classes. The paper demonstrates, how this may be used to parameterize types and enforce constraints on types.
KeywordsObject Descriptor Pattern Attribute Virtual Attribute Item Object Primitive Manner
Unable to display preview. Download preview PDF.
- [BET83a]B.B. Kristensen, O.L. Madsen, B. Møller-Pedersen, K. Nygaard: Abstraction Mechanisms in the BETA Programming Language. Proceedings of the Tenth ACM Symposium on Principles of Programming Languages, 1983Google Scholar
- [BETA83 b]O.L. Madsen, B. Møller-Pedersen, K. Nygaard: From SIMULA 67 to BETA. Proceedings of the Eleventh SIMULA User’s Conference, 1983Google Scholar
- [BETA85]B.B. Kristensen, O.L. Madsen, B. Møller-Pedersen, K. Nygaard: Multi-sequential Execution in the BETA Programming Language. Sigplan Notices, Vol. 20, No. 4 April 1985Google Scholar
- [BETA87]B.B. Kristensen, O.L. Madsen. B. Møller-Pedersen, K. Nygaard: The BETA Programming Language. To appear in: Research Directions in Object Orienetd Programming. Edited by B. Shriver and P. Wegner. MIT Press Spring 1987.Google Scholar
- [Cannon83]H. Cannon: Flavors, A Non-Hierarchical Approach to Object-Oriented Programming. Draft 1982Google Scholar
- [DELTA75]E. Holbæk Hansen, P. Haandlykken, K. Nygaard: System Description and the DELTA Language. Norwegian Computing Center, Oslo 1975Google Scholar
- [Meyer]B. Meyer: Generisity versus Inheritance. In OOPSLA, Object-Oriented Programming Systems, Languages and Applications. Conference Proceedings, Sigplan Notices Vol.21 No.11 November 1986.Google Scholar
- [SIMULA67]O.J. Dahl, B. Myhrhaug & K. Nygaard: SIMULA 67 Common Base Language, Norwegian Computing Center, 1968, 1970, 1972, 1984Google Scholar
- [Smalltalk]A. Goldberg, D. Robson: Smalltalk 80: The Language and its Implementation. Addison Wesley 1983.Google Scholar
- [Strousrup]B. Stroustrup: The C++ Programming Language. Addison Wesley 1986.Google Scholar
- [Thomsen]K.S. Thomsen: Multiple Inheritance, a Structuring Mechanism for Data, Processes and Procedures. DAIMI PB-209, Aarhus University, April 1986.Google Scholar
- [Vaucher]J. Vaucher: Prefixed procedures: A structuring Concept for Operations. Infor, Vol 13, no.3. October 1975.Google Scholar