平成22年度 秋期 午前 問22
ソフトウェア開発管理技術
コンパイラによる最適化の主な目的
コンパイラによる最適化の主な目的はどれか。
- アプログラムの実行時間を短縮する。
- イプログラムのデバッグを容易にする。
- ウプログラムの保守性を改善する。
- エ目的プログラムを生成する時間を短縮する。
答えと解説を見る
✓ これが正解アプログラムの実行時間を短縮する。
解説
できあがった目的プログラムを速く走らせるためです。
コンパイラは、人が書いたソースプログラムを機械が実行できる形へ翻訳する道具です。翻訳の途中では、同じ結果を出す命令の並べ方がいくつも取れます。最適化とは、その中から実行したときに有利になる並べ方を選ぶ働きのことです。繰返しの中で毎回同じ値を計算している箇所を外へ出したり、結果がどこにも使われない計算を取り除いたり、よく使う値を主記憶ではなく処理装置の中の速い場所に置いたりします。どれも狙いは同じで、翻訳の成果物を走らせたときの所要時間を縮めることです。判定の軸は、縮むのがどの時間かという一点です。作った物を走らせるときの時間なのか、それとも作っている最中の時間や、人が後から手を入れるときの手間なのかを見分けます。
ほかの選択肢はなぜ違うのか
- イプログラムのデバッグを容易にする。:不具合を追いやすくするには、もとの行や変数との対応を残しておく必要があります。ところが命令を並べ替えたり消したりすると、その対応は崩れます。狙いとは逆の向きに働く性質です。
- ウプログラムの保守性を改善する。:手を入れやすさは、人が読み書きするソースプログラムの構造や命名で決まります。翻訳したあとの機械語をどう組み替えても、もとの読みやすさは何も変わりません。
- エ目的プログラムを生成する時間を短縮する。:翻訳作業そのものを早く終わらせたいなら、有利な並べ方を探す手間を省くのが近道になります。その探索を足す以上、翻訳に要する時間はむしろ増える方向です。
この問題の用語
- 保守動いているシステムを使い続けられるように、点検や修正、更新を続ける作業です。障害の修正だけでなく、環境の変化に合わせた手直しも含みます。
- 改善悪いところを直して、より良い状態にすること。一度で終わらせず、計画・実行・評価・見直しを繰り返して続けるのが基本です。
出典:平成22年度 秋期 基本情報技術者試験 午前 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)