A Meta-object Protocol is used in different object-oriented systems to specify behavior of the underlying object system
Different object-oriented languages have different meta-object protocols:
A meta-object protocol can also be used in applications where reflection is needed for a system to be able to examine itself:
Many features of a meta-object protocol are built into Tcl itself, and other features are added by each of the Object orientation extensions.
escargo 2006-11-03: The inclusion of a meta-object protocol can be the foundation of object-oriented extensions. I think of TIP 279
DKF 2009-05-14: Not really. It doesn't allow all that much flexibility in terms of the actual implementation semantics. That particular TIP allows any kind of OO system to be built, so long as it's XOTcl; it's the Henry Ford of core OO proposals. Writing a customizable MOP is very difficult; even now (having designed and implemented TclOO) I still feel I don't grasp the full space of possibilities firmly enough to be able to build a scripted customization interface for the basic semantics.