基本情報技術者試験 - 令和5年7月修了 - 問14
コンパイラによる最適化の主な目的はどれか。
| ア | プログラムの実行時間を短縮する。 |
|---|---|
| イ | プログラムのデバッグを容易にする。 |
| ウ | プログラムの保守性を改善する。 |
| エ | プログラムを生成する時間を短縮する。 |
答え : ア
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › 開発ツール
解説 :
コンパイラとは,人間が書いたプログラムのソースコードを,コンピュータが直接実行できる機械語のプログラム(オブジェクトコード)に変換するソフトウェアです。
コンパイラには「最適化」という機能があり,これは,生成されるプログラムの実行時間をできるだけ短くするために,無駄な処理を取り除いたり,より効率のよい命令の並びに変換したりする処理のことです。従って,正解は「ア」です。
「イ」は,プログラムのデバッグを容易にすることについての説明ですが,コンパイラの最適化はむしろ,元のソースコードの構造と生成されるコードの構造が変わってしまうことがあるため,デバッグをかえって難しくする場合もあり,最適化の主目的とは異なります。
「ウ」は,プログラムの保守性を改善することについての説明ですが,最適化はあくまで実行時の効率を高めるための処理であり,ソースコード自体の分かりやすさや保守のしやすさを改善するものではありません。
「エ」は,プログラムを生成する時間,つまりコンパイル自体にかかる時間を短縮することについての説明ですが,実際には最適化を行うことで,より丁寧な解析や変換処理が必要になるため,コンパイルにかかる時間はむしろ長くなる傾向があります。
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › 開発ツール
解説 :
コンパイラとは,人間が書いたプログラムのソースコードを,コンピュータが直接実行できる機械語のプログラム(オブジェクトコード)に変換するソフトウェアです。
コンパイラには「最適化」という機能があり,これは,生成されるプログラムの実行時間をできるだけ短くするために,無駄な処理を取り除いたり,より効率のよい命令の並びに変換したりする処理のことです。従って,正解は「ア」です。
「イ」は,プログラムのデバッグを容易にすることについての説明ですが,コンパイラの最適化はむしろ,元のソースコードの構造と生成されるコードの構造が変わってしまうことがあるため,デバッグをかえって難しくする場合もあり,最適化の主目的とは異なります。
「ウ」は,プログラムの保守性を改善することについての説明ですが,最適化はあくまで実行時の効率を高めるための処理であり,ソースコード自体の分かりやすさや保守のしやすさを改善するものではありません。
「エ」は,プログラムを生成する時間,つまりコンパイル自体にかかる時間を短縮することについての説明ですが,実際には最適化を行うことで,より丁寧な解析や変換処理が必要になるため,コンパイルにかかる時間はむしろ長くなる傾向があります。