平成28年度 春期 午前 問19
ソフトウェア
コンパイラにおける最適化の説明
コンパイラにおける最適化の説明として,適切なものはどれか。
- アオブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
- イコンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
- ウソースコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
- エプログラムの実行時に,呼び出されたサブプログラム名やある時点での変数の内容を表示するようなオブジェクトコードを生成する。
答えと解説を見る
✓ これが正解ウソースコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
解説
実行時の処理効率を高めた目的コードを生成する働きです。
コンパイラは、人が書いたソースコードを、機械が実行する目的コードに変換する道具です。単に対応する命令に置き換えるだけでなく、途中で解析を行い、同じ結果を保ちながら、より少ない命令や、より速く動く並びに書き換えることができます。この書き換えの働きを最適化と呼びます。判定の軸は、扱っている働きが、生成される目的コードの実行時の効率を高めることに向いているのか、それとも変換の対象や生成物の種類そのものを変える別の役割の話なのかという一点です。実行速度や資源の使い方は同じ計算をどう表現するかで変わりうるため、最適化は変換の中で意味のある改善を作り出せる場面で効きます。ここで扱っているのは、コンパイラの各段階のうち、特に生成された目的コードの品質を高める段階の役割です。
ほかの選択肢はなぜ違うのか
- アオブジェクトコードを生成する代わりに,イ…:目的コードを生成する代わりに、インタプリタ用の中間コードを生成すると述べています。これは生成物そのものを別の形式に切り替える働きで、最終的な目的コードの実行時効率を高めるという最適化の役割とは目的が違いました。
- イコンパイルを実施するコンピュータとは異な…:コンパイルを行う機械とは違うアーキテクチャで動く目的コードを生成すると述べています。これは対象の機械を変える働きで、いわゆるクロスコンパイルの説明にあたります。実行時効率を高める最適化とは働きが別でした。
- エプログラムの実行時に,呼び出されたサブプ…:実行時に呼び出されたサブプログラム名や変数の内容を表示する目的コードを生成すると述べています。これは動作の様子を追いかけるための仕組みの説明で、実行効率を上げるための書き換えとは向きが違いました。
この問題の用語
- ソースコード人が読み書きできる形で書かれた、プログラムそのものです。コンパイラなどで、コンピュータが実行できる形に変換して使います。
出典:平成28年度 春期 基本情報技術者試験 午前 問19
同じ用語が出る問題
- 令和7年度 科目A 問5:ローコードに関する問題(ソースコード)
- 令和6年度 科目A 問9:ペネトレーションテストの問題(ソースコード)
- 平成31年度 春期 午前 問48:静的解析ツールに関する問題(ソースコード)
- 平成31年度 春期 午前 問20:オープンソースソフトウェアの問題(ソースコード)
- 平成29年度 秋期 午前 問50:リバースエンジニアリングの説明(ソースコード)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)