Abstract
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.
Part of this work has been supported by NINF, The Royal Norwegian Council for Scientific and Industrial Research, grant no. ED 0223.16641 (the Scala project) and by the Danish Natural Science Research Council, FTU Grant No. 5.17.5.1.25.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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, 1983
O.L. Madsen, B. Møller-Pedersen, K. Nygaard: From SIMULA 67 to BETA. Proceedings of the Eleventh SIMULA User’s Conference, 1983
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 1985
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.
H. Cannon: Flavors, A Non-Hierarchical Approach to Object-Oriented Programming. Draft 1982
E. Holbæk Hansen, P. Haandlykken, K. Nygaard: System Description and the DELTA Language. Norwegian Computing Center, Oslo 1975
B. Meyer: Generisity versus Inheritance. In OOPSLA, Object-Oriented Programming Systems, Languages and Applications. Conference Proceedings, Sigplan Notices Vol.21 No.11 November 1986.
O.J. Dahl, B. Myhrhaug & K. Nygaard: SIMULA 67 Common Base Language, Norwegian Computing Center, 1968, 1970, 1972, 1984
A. Goldberg, D. Robson: Smalltalk 80: The Language and its Implementation. Addison Wesley 1983.
B. Stroustrup: The C++ Programming Language. Addison Wesley 1986.
K.S. Thomsen: Multiple Inheritance, a Structuring Mechanism for Data, Processes and Procedures. DAIMI PB-209, Aarhus University, April 1986.
J. Vaucher: Prefixed procedures: A structuring Concept for Operations. Infor, Vol 13, no.3. October 1975.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B., Nygaard, K. (1987). Classification of actions or Inheritance also for methods. In: Bézivin, J., Hullot, JM., Cointe, P., Lieberman, H. (eds) ECOOP’ 87 European Conference on Object-Oriented Programming. ECOOP 1987. Lecture Notes in Computer Science, vol 276. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47891-4_10
Download citation
DOI: https://doi.org/10.1007/3-540-47891-4_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-18353-2
Online ISBN: 978-3-540-47891-1
eBook Packages: Springer Book Archive