目的プログラムの実行時間を短くするためにコンパイラが行う最適化の方法として、適切なものはどれか。
ア 繰返し回数の多いループは、繰返し回数がより少ないループを複数回繰り返すように変形する。例えば、10,000 回実行するループは、100回実行するループを100回繰り返すようにする。
イ 算術式の中で、加算でも乗算でも同じ結果が得られる演算は乗算で行うように変更する。例えば、“X + X” は “2 * X”で置き換える。
ウ 定数が格納される変数を追跡し、途中で値が変更されないことが確認できれば、その変数を定数で置き換える。
エ プログラム中の2か所以上で同じ処理を行っている場合は、それらをサブルーチン化し、元のプログラムのそれらの部分をサブルーチン呼出しで置き換える。
ウ
ア 10,000回ループしても、100×100回 = 10,000回でループしても処理速度は変わらない。
イ コンピュータは乗算よりも加算のほうが処理速度が速い。
ウ 正しい。
エ サブルーチン化しても、実行時間は短くならない。むしろ、実行時間は長くなる。
ただし、サブルーチン化すると、実行プログラムサイズは基本的には小さくなる。
問18 | 目次 | 問20 |