コンパイラ
コンパイラの最適化が守らなければならない基本的な条件として正しいものはどれか。
- A元のプログラムより、必ず命令の数を半分以下にすること
- B速くなるなら、プログラムの出力が多少変わってもよいこと
- C正しいプログラムについて、外から見える結果を変えないこと
答えと解説を見る
正解:C. 正しいプログラムについて、外から見える結果を変えないこと
最適化は、プログラムを速くしたり小さくしたりするための変換ですが、正しく書かれたプログラムの出力やファイルへの書き込みなど、外から見える振る舞いを変えてはいけません。この条件のもとで、計算の順番を入れ替えたり、不要な計算を削除したりします。命令の数をどれだけ減らせるかは場合によって違い、半分以下という決まりはありません。結果を変えてもよいのは、浮動小数点の並べ替えを許すなど、利用者が明示的に選んだ場合に限られます。
- A. 減らせる量に決まりはありません。
- B. 速さのために結果を変えてはいけません。
- C. 正しい。外から見える結果を変えないことが大原則です。