Metaclasses and Reflection in Smalltalk
This work addresses a specific problem for developers in object-oriented programming by enabling more flexible inheritance mechanisms, though it is incremental as it builds on existing Smalltalk concepts.
The paper tackles the limitation of Smalltalk's reflective features in handling multiple inheritance by proposing an extended language that allows programmer-defined inheritance strategies.
Many Object Oriented Programming Languages provide reflective features which may be used to control the interpretive mechanism of the language. Often these features are defined with respect to a golden braid consisting of objects classes and meta-classes. This report reviews the Smalltalk golden braid and generalize it for multiple inheritance leading to choices between many different inheritance strategies. The reflective features of Smalltalk cannot affect the basic mechanisms of inheritance and so an arbitrary choice must be made for multiple inheritance. A language is described in which the reflective features of Smalltalk are extended so as to allow programmer defined inheritance strategies.