![]() | |
| Author | Gregor Kiczales Jim des Rivieres Daniel G. Bobrow |
|---|---|
| Publisher | MIT Press |
Publication date | July 30, 1991 |
| Pages | 345 |
| ISBN | 0-262-61074-4 |
The Art of the Metaobject Protocol (AMOP) is a 1991book byGregor Kiczales,Jim des Rivieres, andDaniel G. Bobrow (all three working forXerox PARC) on the subject ofmetaobject protocol.
The book contains an explanation of what a metaobject protocol is, why it is desirable, and thede facto standard for the metaobject protocol supported by manyCommon Lisp implementations as an extension of theCommon Lisp Object System, or CLOS.[1] A more complete and portable implementation of CLOS and the metaobject protocol, as defined in this book, was provided by Xerox PARC as Portable Common Loops.[2]
The book presents a simplifiedCLOS implementation for Common Lisp called "Closette", which for the sake of pedagogical brevity does not include some of the more complex or exotic CLOS features such as forward-referencing of superclasses, full class and method redefinitions, advanced user-defined method combinations, and complete integration of CLOSclasses with Common Lisp'stype system. It also lacks support for compilation and most error checking, since the purpose of Closette is not actual use, but simply to demonstrate the fundamental power and expressive flexibility of metaobject protocols as an application of the principles of themeta-circular evaluator.[3]
In his 1997 talk atOOPSLA,Alan Kay called it "the best book anybody's written in ten years", and contended that it contained "some of the most profound insights, and the most practical insights aboutOOP", but was dismayed that it was written in a highly Lisp-centric and CLOS-specific fashion, calling it "a hard book for most people to read; if you don't know theLisp culture, it's very hard to read".[4][5]