開発ツール (全17問中16問目)
No.16
コンパイラによる最適化において,オブジェクトコードの所要記憶領域が削減できるものはどれか。
出典:平成18年秋期 問36
- 関数のインライン展開
- 定数の畳込み
- ループ内不変式の移動
- ループのアンローリング
分類
テクノロジ系 » ソフトウェア » 開発ツール
正解
イ
解説
- 関数のインライン展開は、関数を呼び出す側に呼び出される側の関数のコードを展開することで、関数呼び出しに伴う余分な制御処理を削減する最適化手法です。オブジェクトコードが展開される分だけオブジェクトコード量は増えます。
- 正しい。定数の畳込みは、定数同士の計算式を、その計算結果の定数に置き換えることでオブジェクトコード量を削減する最適化手法です。
- ループ内不変式の移動は、ループ中で値の変化しない式があるとき、その式をループの外に移動することで実行速度を向上させる最適化手法です。位置を置き換えるだけなのでオブジェクトコード量は変化しません。
- ループのアンローリングは、ループ中の繰返しの処理を展開することで、ループ制御に伴う余分な処理を削減する最適化手法です。オブジェクトコードが展開される分だけオブジェクトコード量は増えます。