Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > e3d62627d1d1aab7ab1be2dd7f65a872 > files > 278

ecl-10.4.1-1.fc14.x86_64.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;6.&#160;Meta-Object Protocol (MOP)</title><link rel="stylesheet" href="ecl.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="The ECL manual"><link rel="up" href="pt02.html" title="Part&#160;II.&#160;Extensions and libraries"><link rel="prev" href="ch20s06.html" title="5.6.&#160;Memory Management Reference"><link rel="next" href="ch21s02.html" title="6.2.&#160;Classes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&#160;6.&#160;Meta-Object Protocol (MOP)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch20s06.html">Prev</a>&#160;</td><th width="60%" align="center">Part&#160;II.&#160;Extensions and libraries</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch21s02.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter&#160;6.&#160;Meta-Object Protocol (MOP)"><div class="titlepage"><div><div><h2 class="title"><a name="ext.mop"></a>Chapter&#160;6.&#160;Meta-Object Protocol (MOP)</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ch21.html#ext.mop.intro">6.1. Introduction</a></span></dt><dt><span class="section"><a href="ch21s02.html">6.2. Classes</a></span></dt><dt><span class="section"><a href="ch21s03.html">6.3. Slots</a></span></dt><dt><span class="section"><a href="ch21s04.html">6.4. Generic functions and methods</a></span></dt><dt><span class="section"><a href="ch21s05.html">6.5. Sealed slots and classes</a></span></dt></dl></div><div class="section" title="6.1.&#160;Introduction"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext.mop.intro"></a>6.1.&#160;Introduction</h2></div></div></div><p>The Meta-Object Protocol is an extension to Common Lisp which
   provides rules, functions and a type structure to handle the object
   system. It is a reflective system, where classes are also objects and can be
   created and manipulated using very well defined procedures.</p><p>The Meta-Object Protocol associated to Common Lisp's object system
   was introduced in a famous book, The Art of the Metaobject Protocol <a class="xref" href="bi01.html#bib.AMOP">[AMOP]</a>,
   which was probably intended for the <a class="xref" href="bi01.html#bib.ANSI">ANSI</a> specification but was drop out
   because of its revolutionary and then not too well tested ideas.</p><p>The <a class="xref" href="bi01.html#bib.AMOP">[AMOP]</a> is present, in one way or another, in most Common Lisp
   implementations, eithr using proprietary systems or because their
   implementation of <acronym class="acronym">CLOS</acronym> descended from <acronym class="acronym">PCL</acronym> (Portable CommonLoops). It has
   thus become a de facto standard and <span class="application">ECL</span> should not be without it.</p><p>Unfortunately <span class="application">ECL</span>'s own implemention originally contained only a
   subset of the <a class="xref" href="bi01.html#bib.AMOP">[AMOP]</a>. This was a clever decision at the time, since the
   focus was on performance and on producing a stable and lean implementation
   of Common Lisp. Nowadays it is however not an option, specially given that
   most of the <a class="xref" href="bi01.html#bib.AMOP">[AMOP]</a> can be implemented with little cost for both the
   implementor and the user.</p><p>So <span class="application">ECL</span> has an almost complete implementation of the <a class="xref" href="bi01.html#bib.AMOP">[AMOP]</a>. However,
   since it was written from scratch and progressed according to user's request
   and our own innovations, there might still be some missing functionality
   which we expect to correct in the near future. Please report any feature you
   miss as a bug through the appropriate channels.</p><p>When considering the Metaobject Protocol, the book itself should be
   the main reference. The following sections contain only further extensions
   or improvements over the paragraphs which were either conflicting or less
   specified.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch20s06.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="ch21s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">5.6.&#160;Memory Management Reference&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;6.2.&#160;Classes</td></tr></table></div></body></html>