Path: titcca!ccut!ascgw!necspl!spls34!yosikawa From: yosikawa@ccs.mt.nec.junet (Masazumi Yoshikawa) Newsgroups: fj.lang.lisp Subject: Re: CLOS performance. (In Japanese/Kanji) Message-ID: Date: 13 Mar 90 02:36:55 GMT References: <187@ognews1.osakagas.co.jp> <190@ognews1.osakagas.co.jp> Sender: news@spls34.ccs.mt.nec.co.jp Distribution: fj Organization: NEC C&C Common Software Dev. Lab., Tokyo, Japan. Lines: 42 In-reply-to: kiuchi@s5g.ksp.fujixerox.co.jp's message of 10 Mar 90 02:17:01 GMT In article kiuchi@s5g.ksp.fujixerox.co.jp (Yasuhiko Kiuchi) writes: NECの吉川です. |こんにちは、富士ゼロックスの木内です。 # 木内さんというと,あの,PCL のスタッフの木内さんですか? |もちろん、いくつかのCommon Lisp処理系には、コンパイラーオプティマイザー |が用意されていますので、この実験はできるのですが、まだやったことはあり |ません。イメージがわかないかたのために、どんなものかXerox Lispの例(マ |ニュアルに出ている例です)で説明しますSyntaxは、defmacroに似ています。 ANSI X3J13 の CLtL Clean Up で ANSI Common Lisp への採用が決 まっている define-compiler-macro というマクロがありますが, これに対応するものですね. (define-compiler-macro は defmacro と同様の文法で,コンパイ ル時だけにマクロ展開されるマクロを定義するものです.) これで,ANSI 準拠の Common Lisp 処理系に対してポータブルな最 適化が可能になりますね. |さて、話しはかわって、次にdefconstructorの話しですが、このコードは、 |PCLのコードの中でも観賞に値するものです。2重のClosureを使っての最適化 |のテクニックもその一つですが、初期化関係のものが再定義されると、自動的 |にもとの外側のclosureに戻る点、自分でつくったmeta-classにもコンストラ |クターを作れる枠組になっている点などがあげられます。 defconstructor をマクロ展開してみて感動しました.:-) 凄いですね. 最近,CLOS,PCL 周りでは,メタオブジェクトの利用による性能の 向上,最適化などの話題が出てきているようです. 私は,「メタがない方が速いに決まっている」と漠然と考えていた のですが,「やはりメタオブジェクトは必須なのかな?」という気 もしてきました. メタオブジェクトによる最適化は,どの程度,“メタなし”CLOS に迫れるのでしょうか? ---------------- 日本電気(株) C&C共通ソフトウェア開発本部 環境システム開発部 吉川昌澄 yosikawa@ccs.mt.nec.co.jp