平成26年度 春期 午前 問18
ソフトウェア開発管理技術
コンパイラにおける最適化の説明
コンパイラにおける最適化の説明として,適切なものはどれか。
- アオブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
- イコンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
- ウソースコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
- エプログラムの実行時に,呼び出されたサブプログラム名やある時点での変数の内容を表示するようなオブジェクトコードを生成する。
答えと解説を見る
✓ これが正解ウソースコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
解説
実行を速くするコードを作るのが最適化です。
四つの記述はどれもオブジェクトコードを生成すると結んでいます。そろっている部分は読み飛ばして、何のために生成するのかだけを比べるのが近道で、そこが判定の軸になります。コンパイラの最適化とは、書かれた処理の意味を変えないまま、出来上がるものが速く、あるいは小さく動くように作り替えることを指します。同じ計算を何度も繰り返している箇所を一度で済ませる、繰返しの外へ出せる処理を外へ出す、使われていない変数を取り除く、といった作り替えがその中身です。ソースコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成するという説明が、これに当たります。
ほかの選択肢はなぜ違うのか
- アオブジェクトコードを生成する代わりに,イ…:作っているものが機械にそのまま渡す形ではなく、解釈しながら実行する仕組みへ渡すための途中の形です。どんな形式で出力するかという話であって、速さを詰めるための作り替えではありません。
- イコンパイルを実施するコンピュータとは異な…:違っているのは、出来上がったものを動かす相手のコンピュータです。手元のコンピュータとは造りの異なる機械で動くように作る働きを述べており、速く動くように作り替えるという話とは軸がずれています。
- エプログラムの実行時に,呼び出されたサブプ…:表示のための処理が余分に埋め込まれるぶん、出来上がったものはむしろ重くなります。誤りを追いかけるときには役に立つ作りですが、実行を軽くするという向きとは正反対です。
この問題の用語
- ソースコード人が読み書きできる形で書かれた、プログラムそのものです。コンパイラなどで、コンピュータが実行できる形に変換して使います。
出典:平成26年度 春期 基本情報技術者試験 午前 問18
同じ用語が出る問題
- 令和7年度 科目A 問5:ローコードに関する問題(ソースコード)
- 令和6年度 科目A 問9:ペネトレーションテストの問題(ソースコード)
- 平成31年度 春期 午前 問48:静的解析ツールに関する問題(ソースコード)
- 平成31年度 春期 午前 問20:オープンソースソフトウェアの問題(ソースコード)
- 平成29年度 秋期 午前 問50:リバースエンジニアリングの説明(ソースコード)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)