What is a MetaObject Protocol?

RE01 Rice Brian T. EM2 BRice@vinson.navy.mil
Tue, 27 Oct 1998 12:47:01 -0800


>Could someone make a short summary of what is a MOP.
>It will be a nice idea to write this summary on the wiki (maybe on
>DesignTrends,
>WhatIsReflection).
>I know CommonLisp have one, that TinyClos is a small implementation of
>that in Scheme.

I don't know if my manner of terminology agrees with most of the Tunes
group's political opinions, but here's a stab:

A meta-object protocol is, simply stated, a set of rules for
manipulating and communicating with meta-objects.  In other words, its a
meta-programming language, which the Lisp family of languages provides
rather simply (with the language itself).  The Mjolner BETA system
provides another meta-programming environment that is still maturing.
Or you could say that it's the implicit meaning of meta-objects: what
the user can't control about meta-objects in systems which do not allow
Tunes-level (system-wide) reflection.

The intent of that explanation was to suck, so that some of the more
coherent writers here would write up something better, having seen my
poor attempt. ;)