langsmith:284
From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 29 Aug 2005 02:39:08 +0900
Subject: [langsmith:284] Re: perlのuse
ささだです。 Shiro Kawai wrote: > セマンティクスに関する議論です。 > > その場にいなかったので外しているかもしれませんが、 > 一般に、コンパイルと実行のフェーズが分かれる可能性 > がある場合、外部プログラムのロードがどちらの時点で > 行われるかが明示されていた方が有難いことがあります。 Ruby は必ず実行時である、と明示されていると思うのですが、これでは不十 分でしょうか。 > そのプログラムをロードすることによってコンパイルの > セマンティクスに影響が出る場合、コンパイル時点で > ファイルをロードしたいでしょう。一方、実行時の情報に > よってロードするファイルを切替えたいとか、ロードする > かしないかを選択したいとかいう場合は実行時にロード > せざるを得ません。後者の場合、外部プログラムのロードは > コンパイルのセマンティクスに影響を与えられない、という > ことになります。 > > (Lispのマクロはコンパイルのセマンティクスに影響を与える > 典型的な例ですが、それ以外にも例えばプリミティブオペレータが > 再定義されたかどうかでコンパイル結果を変えるとか、関数を > インライン展開するとか、未定義の変数の使用に警告を出すとか、 > 色々あります。最適化とかロバストなエラーチェックを指向すると、 > なるべくコンパイル時点で多くの情報を得たくなります) マクロを考えるとわかりやすいですね。 最適化の話などはセマンティックスとはまた違うと思うので別口に。ただ、 Ruby では最適化多分出来ないからなあ。 Ruby では、たとえば Kernel#require を書き換えると動作が変わっちゃいま すが、まぁ、そういうことをしないという暗黙の了解があるので、必要ないん じゃないかと思います。 先のメールでプラグマみたいなコンパイルに影響を与える方法が欲しい、と書 きましたが、個人的には、それはファイルローカル、またはもっと狭い範囲に影 響を与えるべきであると考えます。まぁ、それはそれで不便な場面もあるか。 -- SASADA Koichi at atdot dot net -- ML: langsmith quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
270 2005-08-28 19:59 [ko1 atdot.net ] perlのuse 271 2005-08-28 20:43 ┣[matz ruby-lang.org ] 273 2005-08-28 21:06 ┃┣[hyuki hyuki.com ] 275 2005-08-28 22:00 ┃┃┗[matz ruby-lang.org ] 280 2005-08-29 02:18 ┃┃ ┗[ko1 atdot.net ] 288 2005-08-29 12:00 ┃┃ ┗[ko1 atdot.net ] 289 2005-08-30 00:28 ┃┃ ┗[matz ruby-lang.org ] 274 2005-08-28 21:41 ┃┣[matz ruby-lang.org ] 283 2005-08-29 02:29 ┃┃┗[ko1 atdot.net ] 286 2005-08-29 06:52 ┃┃ ┗[matz ruby-lang.org ] 282 2005-08-29 02:25 ┃┗[ko1 atdot.net ] 287 2005-08-29 06:55 ┃ ┗[matz ruby-lang.org ] 272 2005-08-28 20:58 ┗[shiro lava.net ] 276 2005-08-28 22:23 ┣[dankogai dan.co.jp ] 277 2005-08-28 23:03 ┃┣[matz ruby-lang.org ] 278 2005-08-28 23:20 ┃┣[shyouhei ice.uec.ac.] 279 2005-08-29 01:53 ┃┃┗[dankogai dan.co.jp ] 281 2005-08-29 02:21 ┃┗[ko1 atdot.net ] -> 284 2005-08-29 02:39 ┗[ko1 atdot.net ] 285 2005-08-29 04:57 ┗[shiro lava.net ]