平成28年 春期 基本情報技術者 午前 問19

コンパイラにおける最適化の説明として、適切なものはどれか。

 ア  オブジェクトコードを生成する代わりに、インタプリタ用の中間コードを生成する。
 イ  コンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
 ウ  プログラムコードを解析して、実行時の処理効率を高めたオブジェクトコードを生成する。
 エ  プログラムの実行時に、呼び出されたルーチン名やある時点で変数の内容を表示するようなオブジェクトコードを生成する。


答え ウ


解説

 ア  TeX(てふ、HTMLのような記述方法で文書を作るツール。数式などの表現が自由にできるなどの特徴がある。)などの文書を印刷するため、一度PostScriptファイルにするコンパイラなどが代表例です。(他にもあるのでしょうが詳しくはわかりません。)
 イ  クロス開発と言われる開発手法で携帯電話のソフトウェアをパソコン上で開発するなどがこれになります。
 ウ  コンパイラの最適化の説明です。
 エ  コンパイラのデバッグモードのことです。デバッグモードを使用するとデバッグに必要な情報(ルーチン名や変数内容の表示)をオブジェクトコード内に生成します。

C言語のコンパイルの最適化技術は年々進化していますので、処理速度の問題が発生したとき、以前はアセンブラ化するようなこともありましたが、最近は人がアセンブラ化するよりコンパイラの最適化を利用したほうが効率がいいです。
ただし、最適化をすると実行オブジェクトがソースとは異なった順番で動作するため、デバッグ時にわかりにくくなるという問題点もあります。


キーワード
・コンパイラ最適化

キーワードの解説

戻る 一覧へ 次へ