A set of classes and methods that allow a program to
inspect the state of, and alter the behaviour of, the
supporting system. Possibly the best known is the one
described in the book
The Art of the Metaobject Protocol
by Bobrow, Kiczales and des Rivieres; it applies to
the
Common Lisp Object System and allows the
mechanisms of inheritance, method dispatch, class
instantiation and so on to be manipulated.
All Wikipedia text
is available under the
terms of the GNU Free Documentation License