ABSTRACT
The notions of class, subclass and virtual procedure are fairly well understood and recognized as some of the key concepts in object-oriented programming. The possibility of modifying a virtual procedure in a subclass is a powerful technique for specializing the general properties of the superclass.
In most object-oriented languages, the attributes of an object may be references to objects and (virtual) procedures. In Simula and BETA it is also possible to have class attributes. The power of class attributes has not yet been widely recognized. In BETA a class may also have virtual class attributes. This makes it possible to defer part of the specification of a class attribute to a subclass. In this sense virtual classes are analogous to virtual procedures. Virtual classes are mainly interesting within strongly typed languages where they provide a mechanism for defining general parameterized classes such as set, vector and list. In this sense they provide an alternative to generics.
Although the notion of virtual class originates from BETA, it is presented as a general language mechanism.
- 1.Ada Reference Manual: Proposed Standexd Document. United States Department of Defense, July i980.Google Scholar
- 2.P. America: Inheritance and Subtyping in a Pexallel Object-Oriented Language. ECO OP '87, European Conference on Object-Oriented Programming, Lecture Note8 in Computer Science, Vol. Y276, Springer Verlag, 1987. Google ScholarDigital Library
- 3.A.H. Borning, D.tt. Ingalls: A Type Declaration and Infereace System for Smalltalk. University of Washington, August 1981.Google Scholar
- 4.O.J. Dahl, B. Myrhaug, K. Nygaard: SIMULA 67 Common Base. Norwegian Computing Center, O slo, 1968. Google ScholarDigital Library
- 5.H.P. DaMe, M. Lefgren, B. Magnusson, O.L. Madsen: The Mj~lner Project. Software Tools 1987, Wembley, June 1987.Google Scholar
- 6.A. Goldberg, D. Robson: Smalltalk-80: The Language and its Implementation. Addison Wesley, Google ScholarDigital Library
- 7.B.B. Kristensen, O.L. Madsen, B. M~Uer-Pede~sen, K. Nygaard: Abstraction Mechanisms in the BETA Programming Language. Proceedings of the Tenth A CM Symposium on Principles of Programming Languages, January ¿-126 1983, Austin, Tezas. Google ScholarDigital Library
- 8.B.B. Kristensen, O.L. Madsen, B. M~ller-Pedersen, K. Nygaard: The BETA Programming Language. In: B.D. Shriver, P. Wegner (eel.), Kesearch Directions in Object Oriented Programm~g, MIT Press, 1987. Google ScholarDigital Library
- 9.B.B. Kristensen, O.L, Madsen, B. M~ller-Pedersen, K. Nygaard: Classification of Actions or Inheritance also for Methods. ECOOP'87, European Conference on Object.Oriented Programming, Lecture Notes in Computer Science, Vol. ~76, Springer Verlag, 1987. Google ScholarDigital Library
- 10.O.L. Madsen: Block Structure and Object Oriented Languages. In: B.D. Shriver, P. Wegner (ed.): Research Directions in Object Oriented Programming, MIT Press, 1987). Google ScholarDigital Library
- 11.O.L. Madsen, C. Nergaard: An Object-Oriented Metaprogramming System. Hawaii International Conference on System Sciences - 121, January 5-8, 1988. Google ScholarDigital Library
- 12.B. Meyer: Genericity versus Inheritance. Languages and Applications, Sigplan Notices, September 1986. Google ScholarDigital Library
- 13.B. Meyer: Object-oriented Software Constrttction. Prentice Hall, 1988. Google ScholarDigital Library
- 14.P. Nau~ (ed.): Revised Report on The Algoritmic Language ALGOL 60. Regnecentralen. Copenhagen, 196~.Google Scholar
- 15.C. Nergaard, E. Sandvad: Reusability and Tailorability in the Mj~lner BETA System. Computer Science Department, Aarhus University, Draft March 1989.Google Scholar
- 16.B. Stroustrup: The C+-t- Programming Language. Addison- Wesley, 1986. Google ScholarDigital Library
- 17.B. Stroustrup: Possible Directions fox C++. Proc. USENIX C++ Workshop Nov 1987.Google Scholar
- 18.P. Wegner, S. Zdonik: Inheritance as an Incremental Modification Mechanism oz What Like Is and Isn't Like. ECOOP'88, European Conference on Object. Oriented Programming, Lecture Notes in Computer Science, Vol. 3~12, Springer Verlag, 1988. Google ScholarDigital Library
Index Terms
- Virtual classes: a powerful mechanism in object-oriented programming
Recommendations
Virtual classes: a powerful mechanism in object-oriented programming
Special issue: Proceedings of the 1989 ACM OOPSLA conference on object-oriented programmingThe notions of class, subclass and virtual procedure are fairly well understood and recognized as some of the key concepts in object-oriented programming. The possibility of modifying a virtual procedure in a subclass is a powerful technique for ...
Semantic analysis of virtual classes and nested classes
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsVirtual classes and nested classes are distinguishing features of BETA. Nested classes originated from Simula, but until recently they have not been part of main stream object- oriented languages. C++ has a restricted form of nested classes and they ...
Semantic analysis of virtual classes and nested classes
Virtual classes and nested classes are distinguishing features of BETA. Nested classes originated from Simula, but until recently they have not been part of main stream object- oriented languages. C++ has a restricted form of nested classes and they ...
Comments