ウカマル応用情報技術者ログイン

平成27年度 秋期 応用情報技術者 問19

テクノロジ系

目的プログラムの実行時間を短くするためにコンパイラが行う最適化の方法として,適切なものはどれか。

選択肢
正解と解説

正解 ウ

途中で値が変わらない変数を定数に置き換える最適化を、定数伝播(定数畳込み)といいます。実行時のメモリ参照や演算が減るので、実行時間が短くなります。

コンパイラは、変数に定数が代入された後に値が変わらないことをデータフロー解析で確かめます。確かめられた変数の参照は、その定数に置き換えます。これが定数伝播です。置き換えた結果、定数どうしの演算はコンパイル時に計算できます(定数畳込み)。実行時の変数の読出しや演算が減るので、目的プログラムの実行時間が短くなります。

ア:ループを二重にすると、ループの制御(カウンタの更新や条件判定、分岐)が増えます。実行時間を短くする最適化はループ展開で、繰返し回数を減らします。

イ:一般に乗算は加算より処理に時間がかかります。実行時間を短くする最適化は、乗算を加算やシフトに置き換える演算強度の軽減です。

エ:サブルーチン化はプログラムの大きさを減らしますが、呼出しと復帰の処理が増えて実行時間は長くなります。実行時間を短くするのは、逆に呼出しを本体で置き換えるインライン展開です。

出典:平成27年度 秋期 応用情報技術者試験 問19

全年度から出題。10問で実力を判定します。登録不要。

出典:平成27年度 秋期 応用情報技術者試験 問19(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方