>>771
何を言いたいのか、よくわからない。
多分わたしの疑問の書き方がまずかったのだろうと思うので、改めて書いてみる。

ループ内の、Math.sqrt(double) の呼び出しが、もしコンパイラによって
一回だけの呼び出し(2回目以降は一回目の呼び出しの際の戻り値を使う)に、
置き換えられるとしたら、

あとから Math クラス内の sqrt(double)の実装が変更された場合に、
再コンパイルが必要になってしまわないか?

sqrt(double) 内部で、値を返すための動作以外の動作(副作用)が
行われていた場合、それが一度しか実行されないことにならないか?
(例えば、呼ばれた回数をカウントするような実装。)

今回は、Math クラスのスタティックメソッド sqrt が題材になっているが、
コンパイラから見れば、単なる「或るクラスの或るスタティックメソッド」なので、
人間から見れば、「副作用が起るようなことはやってないに違いない」と、
あたりまえに思えることも、コンパイラにとってはそうではないのではないか?