The development of generic mechanisms for the composition of meta-objects is still in its initial stages. OpenC++ [1] does not provide direct support for composition. MOOSTRAP [6] and MetaXa [2] (formerly known as MetaJava) support sequential composition of similar meta-objects. We say that meta-objects are similar if they implement the same interface.
Apertos [11] and CodA [5] admit composition of dissimilar meta-objects, through an extensible set of meta-level aspects. In order to introduce new aspects, pre-existing ones must be modified, and these modifications may clash.
Guaranį [9] allows similar meta-objects to be combined through the use of composer meta-objects. Composers can be used to define arbitrary policies for delegating control to other meta-objects, including other composers. We argue that this feature of Guaranį is fundamental to the separation of the structure of the meta level from the implementation of individual management aspects. It represents a step forward towards MOPs that not only allow but encourage and support the implementation of diverse meta-object composition strategies.
In Section 2, we present a description of the reflective architecture of Guaranį. In Section 3, we shortly describe its implementation. Finally, in Section 4, we summarize the main points of the paper.