平成26年春期試験問題 午前問18
問18解説へ
コンパイラにおける最適化の説明として,適切なものはどれか。
- オブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
- コンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
- プログラムコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
- プログラムの実行時に,呼び出されたルーチン名やある時点での変数の内容を表示させるようなオブジェクトコードを生成する。
広告
解説
コンパイラは、高水準語で記述されたソースコードをコンピュータが理解できる機械語に一括変換する(=コンパイルする)ソフトウェアです。
コンパイルの手順は、①字句解析、②構文解析、③意味解析、④最適化の順で行われ、このうち最適化は、実行効率の高いオブジェクトコードを生成するためにプログラムを再構成する処理です。具体的には次のような処理が行われます。
コンパイルの手順は、①字句解析、②構文解析、③意味解析、④最適化の順で行われ、このうち最適化は、実行効率の高いオブジェクトコードを生成するためにプログラムを再構成する処理です。具体的には次のような処理が行われます。
- 値の不変の変数や、定数同士の計算を定数で置き換える
- 不使用の命令を削除する
- ループの展開、関数のインライン展開
- 累乗を乗算に、乗算を加算にする(加算のほうが処理速度が速い)
- 中間コードを生成する目的は、後続のインタプリタが最適化を行いやすくするためです。
- クロスコンパイラの説明です。
- 正しい。コンパイラにおける最適化の説明です。
- ソフトウェアのデバッグを支援するプログラムであるデバッガ(debugger)の説明です。
広告