Updated 2013-11-24 12:38:29 by dkf

A Meta-object Protocol is used in different object-oriented systems to specify behavior of the underlying object system

See Also  edit

Introspection
a concept similar to reflection
TIP 177, Object Type Introspection
proposes to add a command to give information on the current internal representation of an object.
TIP 279, Adding an Extensible Object System to the Core
discusses various features of a meta-object protocol.

Reading  edit

Meta-Object Protocol links
The Art of the Metaobject Protocol, Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow ,1991

Description  edit

Different object-oriented languages have different meta-object protocols:
Lisp
Perl 5
Perl6
Smalltalk
also this.

A meta-object protocol can also be used in applications where reflection is needed for a system to be able to examine itself:
Designing a Secure and Reconfigurable Meta-Object Protocol, Alexandre Oliva Eduardo Buzato, 1999-02
A Meta-Object Protocol for Distributed OO Applications, Lionel Seinturier et al, 1997 (DOI:10.1109/TOOLS.1997.654738)
Developing Distributed Software Systems by Incorporating Meta-Object Protocol (diMOP) with Unified Modeling Language (UML), Joon-Sang Lee et al, 1997 (?) (DOI:10.1109/ISADS.1999.838366)
First Steps to an Interaction and Communication Manager between Remote Objects, Laurent Berger et al, 1998
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 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.