There are meta-object protocols (MOPs) that do not provide support
for meta-object composition. Others require explicit modification
of existing meta-level code or provide a limited delegation
mechanism in order to support it. There is much room for
improvement in this field.
The MOP of
Guaraná favors the development of meta-objects that can
be easily composed.
Composers are meta-objects that define
arbitrary policies of delegation to other meta-objects, separating
the
implementation of meta-level functionality from its
organization. Composers can also implement meta-level
security policies, limiting the abilities of its component
meta-objects. Composers can be further composed, forming a
potentially infinite
reconfigurable hierarchy.
Our MOP is currently implemented in Java
TM. Nevertheless, most
design decisions presented in this paper can be transported to other
programming languages and MOPs, improving their flexibility,
reconfigurability, security and code reuse.