A ''Meta-object Protocol'' is used in different [Object orientation%|%object-oriented] systems to specify behavior of the underlying object system ** See Also ** [Introspection]: a concept similar to ''reflection'' [TIP] [http://www.tcl.tk/cgi-bin/tct/tip/117.html%|%177], Object Type Introspection: proposes to add a command to give information on the current internal representation of an object. [TIP] [http://www.tcl.tk/cgi-bin/tct/tip/279%|%279], Adding an Extensible Object System to the Core: discusses various features of a meta-object protocol. ** Reading ** [http://web.archive.org/web/20070816061926/http://www.ispras.ru/~dkv/links/links.html%|%Meta-Object Protocol links]: [http://mitpress.mit.edu/books/art-metaobject-protocol%|%The Art of the Metaobject Protocol], Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow ,1991: ** Description ** Different object-oriented languages have different meta-object protocols: [http://mop.lisp.se/%|%Lisp]: [http://search.cpan.org/~drolsky/Class-MOP/lib/Class/MOP.pm%|%Perl 5]: [http://www.perl6.org/archive/rfc/92.html%|%Perl6]: [http://courses.cs.washington.edu/courses/cse341/04wi/lectures/17-smalltalk-classes.html%|%Smalltalk]: also [https://web.archive.org/web/20040811195638/http://www.ifi.unizh.ch/groups/richter/Classes/oose2/05_Metaclasses/02_smalltalk/02_metaclasses_smalltalk.html%|%this]. A meta-object protocol can also be used in applications where ''reflection'' is needed for a system to be able to examine itself: ''[http://www.fsfla.org/~lxoliva/papers/guarana/security-html/%|%Designing a Secure and Reconfigurable Meta-Object Protocol]'', Alexandre Oliva Eduardo Buzato, 1999-02: ''[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.4455%|%A Meta-Object Protocol for Distributed OO Applications]'', Lionel Seinturier et al, 1997 (DOI:[http://dx.doi.org/10.1109/TOOLS.1997.654738%|%10.1109/TOOLS.1997.654738]): ''[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.31.2050%|%Developing Distributed Software Systems by Incorporating Meta-Object Protocol (diMOP) with Unified Modeling Language (UML)]'', Joon-Sang Lee et al, 1997 (?) (DOI:[http://dx.doi.org/10.1109/ISADS.1999.838366%|%10.1109/ISADS.1999.838366]): ''[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.9552%|%First Steps to an Interaction and Communication Manager between Remote Objects]'', Laurent Berger et al, 1998: ''[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1592%|%The Zypher Meta Object Protocol]'', Koen De et al, 1996: discusses the necessity of a meta object protocol in the design of an open hypermedia system. ---- 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] [http://tip.tcl.tk/279%|%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. <> Concept | Object Orientation