なかだです。

At Tue, 12 Feb 2002 10:59:05 +0900,
shudo / computer.org wrote:
> > Javaはコンパイルと実行が分かれてるので、あらかじめいろいろやっ
> > ておけますから。コンパイルも実行時間に含まれてしまうスクリプト
> > 系では辛いでしょう。
> 
> 解析にかかる時間 (オーダ) がメリットに比べて小さければ、
> 導入を検討してもいいんじゃないかと思います。
> (この件の導入/却下について意見はないんですが)
> 
> スクリプト言語だから…と切り捨てるのはもったいない気がします。

切捨ててるわけではないですが、どの程度のメリットがあるのかよく
分からなかったもので。これはパーサで解析できるので、実行時のコ
ストは大したことないです。

<http://member.nifty.ne.jp/nokada/archive/lvar-init.patch.bz2>
-wで警告を出すようにしてみたパッチです。

試してみて気づいたのですが、こういうのは今の1.7ではエラー(正確
にはメソッドを探そうとしてる)になります。

  a &&= a
  b ||= b
  c += c

一貫性の点からすれば、単純な代入でも同じようにしたほうがいいと
思います。

> Java だって実行時に Java バイトコード → ネイティブコード
> っていうコンパイルはするのだし、
> その上で処理にかかる時間を小さくする工夫をしてるわけです。

JITとかVMとかの話になるとまた違って来ると思うので、それはそれと
して。

> 「スクリプト言語」って何?と常々考えてます。
> 例えば、次のようなスクリプトを用意して、
> 「C言語はスクリプト言語でなのでアル!」と主張したら、
> どんな反論があり得るでしょうか。
> 
>   #!/bin/sh
>   cc -o ./$1.out $1
>   exec ./$1.out

Perlのinline module(だったかな?)みたいな:-)。

> ソースコードをそのまま実行に移せる、という性質は、
> どうもスクリプト言語の本質的な部分ではないと思うのです。

言語自体の本質ではないですが、処理系としてはかなり影響の大きな
部分ではあると思います。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦