回答編集履歴
1
表現変更
answer
CHANGED
@@ -9,4 +9,4 @@
|
|
9
9
|
1.を許容したとして、初期値を設定しなくても必ず0で初期化されることを保証するという言語仕様を考えてみます。さてプログラマーがバグのないプログラムを書いて、変数の値を0でない値に初期化するとしましょう。その場合、必要もないのに0で初期化されるということはそれだけ無駄な代入文を実行することを意味するので、無暗に実行速度を落とす要因になってしまいます。
|
10
10
|
ただしインタープリタ言語の多くではそういう仕様もあります。Visual Basicなんてのはそうですね。
|
11
11
|
Dim a as Integer
|
12
|
-
と書くと何も初期化しなくても0が仮定されます。インタープリタ言語は元々スピードを最優先に考えるのではなく使い勝手やコンパイルが必要ない点を重視するため「初期化ステップが入ったからといって何ほどのこともない」という考えで設計されるのだと思います。それに対してJavaなどのコンパイラー言語では「コンパイルという手間をかけるのだから可能な限りプログラムの正しさや効率を求める」思想で設計されます。そういう意味で「スピードを
|
12
|
+
と書くと何も初期化しなくても0が仮定されます。インタープリタ言語は元々スピードを最優先に考えるのではなく使い勝手やコンパイルが必要ない点を重視するため「初期化ステップが入ったからといって何ほどのこともない」という考えで設計されるのだと思います。それに対してJavaなどのコンパイラー言語では「コンパイルという手間をかけるのだから可能な限りプログラムの正しさや効率を求める」思想で設計されます。そういう意味で「スピードを落とすような仕様」は合理的な理由がない限り避けられる傾向にあると思います。
|