平成23年度 秋期 午前 問22
ソフトウェア開発管理技術
コンパイラにおける最適化の説明
コンパイラにおける最適化の説明として,適切なものはどれか。
- アオブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
- イコンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
- ウプログラムコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
- エプログラムの実行時に,呼び出されたサブプログラム名やある時点での変数の内容を表示するようなオブジェクトコードを生成する。
答えと解説を見る
✓ これが正解ウプログラムコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
解説
実行時の効率が上がるようにコードを作り直す働きです。
コンパイラの仕事は、人が書いたプログラムコードを機械が実行できる形へ翻訳することです。最適化はその翻訳の途中に置かれる工程で、動きをそのまま保ったまま、出来上がりのオブジェクトコードが速く動くように組み立て直します。判定の軸は二つです。まず、その記述が翻訳の出口にあたるものの中身の良し悪しを述べているかどうか。次に、その良し悪しを測る尺度が実行時の処理効率になっているかどうかです。翻訳先を別の機械に向けることや、出力の形式を変えること、出力に開発者向けの働きを足すことは、どれもコンパイラが持つ別の性質であって、効率を高める工程そのものではありません。
ほかの選択肢はなぜ違うのか
- アオブジェクトコードを生成する代わりに,イ…:翻訳の到達点を機械語ではなく、別の実行系がそのつど読み取るための形にする話です。速さを追う工程ではなく、どんな形で出力するかの選び方にあたります。
- イコンパイルを実施するコンピュータとは異な…:作られたコードが動く相手の機械が、作った機械と別である場合を述べています。向け先の違いであって、出来上がりが速く動くかどうかとは別の観点です。
- エプログラムの実行時に,呼び出されたサブプ…:実行の途中で呼び出しの名前や変数の中身を画面に出す働きを、あらかじめ埋め込む話です。不具合を追うための助けで、むしろ動きは重くなります。
出典:平成23年度 秋期 基本情報技術者試験 午前 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)