過去問解きまくり研究所 ホーム

平成27年度 秋期 午前 問19

ソフトウェア

コンパイラが行う最適化の方法

目的プログラムの実行時間を短くするためにコンパイラが行う最適化の方法として,適切なものはどれか。

答えと解説を見る

✓ これが正解ウ定数が格納される変数を追跡し,途中で値が変更されないことが確認できれば,その変数を定数で置き換える。

解説

値が変わらない変数を定数に置き換える工夫です。

コンパイラの最適化には、実行を速くする向きと、出来上がるプログラムを小さくする向きがあります。この二つはしばしば反対を向くので、設問がどちらを求めているかを先に確かめるのが要点です。ここでは実行時間を短くする方法が問われています。正解にあたる工夫は、ある変数に入る値が最後まで変わらないと確かめられたとき、その変数を値そのものに置き換えるというものです。置き換えられれば、実行のたびに変数の中身を読みに行く手間が消えます。さらに、その値を使った計算がその場で片づく場合は、翻訳の段階で答えを出してしまい、実行時には何も残らないこともあります。実行時にやることが減る、という一点で効いているわけです。残りの三つの記述は、実行時にやることが増えるか、少なくとも減りません。判断に迷ったら、書き換えた後で CPU が実際に行う仕事が増えるか減るかを数えてみると、向きがはっきりします。

ほかの選択肢はなぜ違うのか

出典:平成27年度 秋期 応用情報技術者試験 午前 問19

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)