Abstract:
In a system where classes are treated as first class objects, classes are defined as instances of other classes called metaclasses. An important benefit of using metaclasses is the ability to assign properties to classes (e.g. being abstract, being final, tracing particular messages, supporting multiple inheritance), independently from the base-level code. However, when both inheritance and instantiation are explicitly and simultaneously involved, communication between classes and their instances raises the metaclass compatibility issue. Some languages (such as Smalltalk) address this issue but do not easily allow the assignment of specific properties to classes. In contrast, other languages (such as Clos) allow the assignment of specific properties to classes but do not tackle the compatibility issue well. In this paper, we describe a new model of metalevel organization, called the compatibility model, which overcomes this difficulty. It allows safe metaclass programming since it m...
Citations
|
713
|
The Art of Metaobject Protocol
– Kiczales, Rivieres, et al.
- 1991
|
|
386
|
Concepts and Experiments in Computational Reflection
– Maes
- 1987
|
|
336
|
Mixin-based inheritance
– Bracha, Cook
- 1990
|
|
194
|
Adaptive Object-Oriented Software. The Demeter Method with Propagation Patterns
– Lieberherr
- 1996
|
|
96
|
Metaclasses are first class: The ObjVlisp model
– Cointe
- 1987
|
|
80
|
Separation of Concerns
– Lopes, Hursch
- 1995
|
|
73
|
Wrappers to the rescue
– Brant, Foote, et al.
- 1998
|
|
40
|
Evaluating message passing control techniques in Smalltalk
– Ducasse
- 1999
|
|
40
|
The Language and its Implementation
– Smalltalk-80
- 1983
|
|
36
|
Towards a Methodology for Explicit Composition of MetaObjects. OOPSLA'95
– Mulet, Malenfant, et al.
- 1998
|
|
26
|
Programming with Explicit Metaclasses in Smalltalk
– Briot, Cointe
- 1989
|
|
22
|
Explicit Metaclasses as a Tool for Improving the Design of Class Libraries
– LEDOUX, COINTE
- 1996
|
|
17
|
Metaclass compatibility
– Graube
- 1989
|
|
12
|
Reflections on Metaclass Programming in SOM
– DANFORTH, FORMAN
- 1994
|
|
10
|
Smalltalk with Style
– Klimas, Skublics, et al.
- 1996
|
|
10
|
SOMobjects Developer Toolkit Users Guide release 2.0
– IBM
- 1993
|
|
9
|
A New Smalltalk Kernel Allowing Both Explicit and Implicit Metaclass Programming
– RIVARD
- 1996
|
|
5
|
Derived Metaclasses in SOM
– Danforth, Forman
- 1994
|
|
3
|
Metaclass composability
– Bouraqadi-Saadani, Ledoux, et al.
- 1996
|
|
3
|
Marianne Huchard, and Marie-Laure Mugnier. Proposal for a Monotonic Multiple Inheritance Linearization
– Ducournau, Habib
- 1994
|
|
2
|
Research Directions in Concurrent Object-Oriented Programming, chapter Analysis of Inheritance Anomaly in Object-Oriented Concurrent Programming Languages
– Matsuoka, Yonezawa
- 1993
|
|
1
|
Reflection and Distributed Systems : an Experiment with CORBA and Smalltalk
– Ledoux
- 1998
|
|
1
|
Object Behavioral Evolution Within Class Based Reflective Languages
– Rivard
- 1997
|