--Originally published at GilbertoRogel
In computer science, a metaobject is an object that manipulates, creates, describes, or implements other objects (including itself). The object that the metaobject is about is called the base object.
A metaobject protocol (MOP) provides the vocabulary to access and manipulate the structure and behavior of objects. Typical functions of a metaobject protocol include:
- Creating and deleting new classes
- Creating new methods and properties
- Changing the class structure so that classes inherit from different classes
- Generating or modifying the code that defines the methods for the class
Source: Wikipedia.