% mop.ii. 前書き
mop.ii. 前書き
The Art of the Metaobject Protocol
Chapters 5 and 6
1991 MIT Press
Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow,
Xerox Palo Alto Research Center
http://www.cs.cmu.edu/afs/cs/Web/Groups/AI/lang/lisp/doc/standard/ansi/mop/
このパートでは、CLOSのためのメタオブジェクトプロトコルの詳しい仕様を提供します。 このプロトコルの研究は、 常に私たち自身のCLOSの実装であるPCLに根ざして行われてきました。 これによってユーザーコミュニティを持つことができ、 そのコミュニティは、このプロトコルが進化するにつれて、 我々にフィードバックを提供してくれました。 その結果、ここで紹介する多くの設計は十分テストされましたし安定しています。 これを書いている時点では、CLOSの実装はPCLだけでなく、 私たちが知っている限り少なくとも他3つの実装が知られています。 プロトコルの他の部分は、PCLや他のものでも何らかの形で 実装されているにもかかわらず、あまりよく練られてはいません。 これらのプロトコルは使いやすさだけでなく、 ユーザの拡張性と実装者の自由度のバランスを 改善するための作業が残されています。
本仕様書は、CLOSのメタオブジェクトプロトコルを使用する ユーザと実装者のための基礎となることを期待して作成したものです。 この文書は、ある種の最終的な言葉や標準と解釈されるべきではなく、 これまで行われてきたことの文としてのみ解釈されるべきものです。 私たちはこの出版がきっかけとなり、 大なり小なり改良がなされることを期待しています。
このため、第II部(第5章、第6章)に限り、
原文の一部を含む改訂版やその他の二次的著作物を作成することを許可します。
ただし、原文の出典をきちんと明記し、
その後の改訂や二次的著作物も同じ条件で
明示的に許可することをお願いしています。
この著作物の改良を促進するために、これらの章の電子ソースを一般に公開しました。
これは、arisia.xerox.com
のpcl/mop
ディレクトリから
anonymous FTPでアクセスすることができます。
PCLのユーザーからの貴重なフィードバックに加え、 ここで紹介するプロトコル設計は、 以下の方々による詳細なコメントと提案の恩恵を受けています。 Kim Barrett, Scott Cyphers, Harley Davis, Patrick Dussud, John Foderaro, Richard P. Gabriel, David Gray, David A. Moon, Andreas Paepcke, Chris Richardson, Walter van~Roggen, Jon L. White, 各氏。 私たちは彼ら一人一人に非常に感謝しています。 残りの誤り、矛盾、設計上の不備は、すべて著者だけの責任です。
In this part of the book, we provide the detailed specification of a metaobject protocol for CLOS. Our work with this protocol has always been rooted in our own implementation of CLOS, PCL. This has made it possible for us to have a user community, which in turn has provided us with feedback on this protocol as it has evolved. As a result, much of the design presented here is well-tested and stable. As this is being written, those parts have been implemented not only in PCL, but in at least three other CLOS implementations we know of. Other parts of the protocol, even though they have been implemented in one form or another in PCL and other implementations, are less well worked out. Work remains to improve not only the ease of use of these protocols, but also the balance they provide between user extensibility and implementor freedom.
In preparing this specification, it is our hope that it will provide a basis for the users and implementors who wish to work with a metaobject protocol for CLOS. This document should not be construed as any sort of final word or standard, but rather only as documentation of what has been done so far. We look forward to seeing the improvements, both small and large, which we hope this publication will catalyze.
To this end, for Part II only (chapters 5 and 6), we grant permission to prepare revisions or other derivative works including any amount of the original text. We ask only that you properly acknowledge the source of the original text and explicitly allow subsequent revisions and derivative works under the same terms. To further facilitate improvements in this work, we have made the electronic source for these chapters publicly available; it can be accessed by anonymous FTP from the pcl/mop directory on arisia.xerox.com.
In addition to the valuable feedback from users of PCL, the protocol design presented here has benefited from detailed comments and suggestions by the following people: Kim Barrett, Scott Cyphers, Harley Davis, Patrick Dussud, John Foderaro, Richard P. Gabriel, David Gray, David A. Moon, Andreas Paepcke, Chris Richardson, Walter van~Roggen, and Jon L. White. We are very grateful to each of them. Any remaining errors, inconsistencies or design deficiencies are the responsibility of the authors alone.