「Common Lisp Object System」の版間の差分

削除された内容 追加された内容
Guicho w (会話 | 投稿記録)
Guicho w (会話 | 投稿記録)
52行目:
 
=== MOP : Meta Object Protocol ===
ANSI 標準の範囲外だが、CLOS の実装に広く採用されている拡張として[[メタオブジェクト|メタオブジェクトプロトコル]](MOP[http://alu.org/mop/index.html The Common Lisp Object System MetaObject Protocol])がある。MOP は CLOS 実装基盤に標準インタフェースを定義し、クラスを[[メタクラス]]のインスタンスとして扱い、新たなメタクラスを定義したり、基底クラスの振る舞いを修正したりできる。CLOS MOP は[[アスペクト指向プログラミング]]の先取りとも言え、実際同じ技術者(Gregor Kiczales など)が関わっている。代表的な機能は<code>''Generic Function'' (class-slots class)</code>、<code>''Class'' standard-slot-definition</code>、など
 
MOPは実装系によって扱いが異なるが、その重要性のため、可搬性を担保する試みが行われている。結果、現在では、インターフェースを共通にするライブラリ Closer-MOP[http://common-lisp.net/project/closer/closer-mop.html Closer to MOP] がデファクトスタンダードとなっている<ref>http://www.cliki.net/Current%20recommended%20libraries</ref>
 
== 実行メソッドの形成 ==