Classification of actions or inheritance also for methods
European conference on object-oriented programming on ECOOP '87
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Strong typing of object-oriented languages revisited
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Open issues in object-oriented programming—a Scandinavian perspective
Software—Practice & Experience - Special issue on object-oriented programming and technology
Semantic analysis of virtual classes and nested classes
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Abstraction mechanisms in the BETA programming language
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Statically Safe Alternative to Virtual Types
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Propagating Class and Method Combination
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Unifying Genericity - Combining the Benefits of Virtual Types and Parameterized Classes
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Towards a Unified Programming Language
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Hi-index | 0.00 |
One of the characteristics of BETA [4] is the unification of abstraction mechanisms such as class, procedure, process type, generic class, interface, etc. into one abstraction mechanism: the pattern. In addition to keeping the language small, the unification has given a systematic treatment of all abstraction mechanisms and leads to a number of new possibilities. One of the interesting results of the unification is the notion of virtual class [7,8], which is the BETA mechanism for expressing genericity. A class may define an attribute in the form of a virtual class just as a class may define an attribute in the form of a virtual procedure. A subclass may then refine the definition of the virtual class attribute into a more specialized class. This is very much in the same way as a virtual procedure can be refined - resulting in a more specialized procedure. Virtual classes can be seen as an object-oriented version of generics. Other attempts to provide genericity for OO languages has been based on various forms of parametric polymorphism and function application rather than inheritance. Virtual classes have been used for more than 15 years in the BETA community and they have demonstrated their usefulness as a powerful abstraction mechanism. There has recently been an increasing interest in virtual classes and a number of proposals for adding virtual classes to other languages, extending virtual classes, and unifying virtual classes and parameterized classes have been made [1, 2, 3, 13, 14, 15, 16, 17].