A ''Meta-object Protocol'' is used in different object-oriented systems to specify behavior of the underlying object system [http://www.ispras.ru/~dkv/links/links.html] [[that link is not available 2009-May-14]]. Different object-oriented languages have different meta-object protocols. * Lisp [http://www.lisp.org/mop/] * Perl 5 [http://search.cpan.org/~drolsky/Class-MOP/lib/Class/MOP.pm] * Perl6 [http://dev.perl.org/rfc/92.html] * Python [http://twistedmatrix.com/users/jh.twistd/python/moin.cgi/MetaPython] [[that link is not available 2009-May-14]] * Smalltalk [http://www.ifi.unizh.ch/groups/richter/Classes/oose2/05_Metaclasses/02_smalltalk/02_metaclasses_smalltalk.html] A meta-object protocol can also be used in applications where ''reflection'' is needed for a system to be able to examine itself * for security [http://www.dcc.unicamp.br/~oliva/guarana/docs/security-html/security.html] * for distributed applications [http://citeseer.nj.nec.com/498349.html] [[that link is not available 2009-May-14]] * for distributed applications [http://www.computer.org/proceedings/isads/0137/01370065abs.htm] * for distributed applications [http://lis.univ-tlse1.fr/ecoop-ws/Papers/Blay/node7.html] [[that link is slow as of 2009-May-14]] * for frameworks [http://www.iam.unibe.ch/~demeyer/Deme96m/psstmnt.html] The term, ''reflection'', is similar in meaning to [Introspection]. See also TIP #117 [http://purl.org/tcl/tip/117.html]. ---- So, what does this have to do with Tcl? Well, it really has to do with what features of a meta-object protocol are built into Tcl by itself, and what features are added by each of the object-oriented extensions. ''[escargo] 25 Nov 2002'' Also, the inclusion of a meta-object protocol can be the foundation of object-oriented extensions. I think of TIP 279 [http://tip.tcl.tk/279] as defining a MOP to build OOP. ''[escargo] 3 No 2006'' [DKF] (14-May-2009): 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. ---- [Category Concept] | [Category Object Orientation]