応用情報技術者 2011年 春期 午前2 問22
問題文
あるコンピュータ上で、異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムはどれか。
選択肢
ア:エミュレータ
イ:クロスコンパイラ(正解)
ウ:最適化コンパイラ
エ:プログラムジェネレータ
異なる命令形式のコンピュータで実行可能な目的プログラムを生成する言語処理プログラム【午前2 解説】
要点まとめ
- 結論:異なる命令形式のコンピュータ向けに目的プログラムを生成するのはクロスコンパイラです。
- 根拠:クロスコンパイラは開発環境と実行環境が異なる場合に、実行環境の命令形式に合わせてコードを生成します。
- 差がつくポイント:エミュレータは実行環境を模倣するソフト、最適化コンパイラは効率化重視、プログラムジェネレータはコード自動生成であり、命令形式の違いを扱うのはクロスコンパイラだけです。
正解の理由
イ: クロスコンパイラは、開発用のコンピュータ(ホスト)とは異なる命令セットを持つターゲットコンピュータ向けに目的プログラムを生成します。これにより、異なる命令形式のコンピュータ上でプログラムを実行可能にします。
他の選択肢は、命令形式の違いを直接扱う機能を持ちません。
他の選択肢は、命令形式の違いを直接扱う機能を持ちません。
よくある誤解
エミュレータは異なる環境でプログラムを動かせますが、目的プログラムを生成するわけではありません。最適化コンパイラは性能向上が目的で、命令形式の違いは扱いません。
解法ステップ
- 問題文の「異なる命令形式のコンピュータで実行できる目的プログラムを生成する」部分に注目する。
- 各選択肢の役割を整理する。
- エミュレータは実行環境の模倣、最適化コンパイラは効率化、プログラムジェネレータはコード自動生成であることを確認。
- クロスコンパイラが異なる命令形式のターゲット向けに目的プログラムを生成することを理解する。
- よって正解はイと判断する。
選択肢別の誤答解説
- ア: エミュレータ
実行環境を模倣してプログラムを動かすが、目的プログラムを生成するわけではない。 - イ: クロスコンパイラ
正解。異なる命令形式のコンピュータ向けに目的プログラムを生成する。 - ウ: 最適化コンパイラ
プログラムの実行効率を高めるが、命令形式の違いを扱う目的ではない。 - エ: プログラムジェネレータ
汎用的なコード自動生成ツールであり、命令形式の違いに対応するものではない。
補足コラム
クロスコンパイラは組み込み開発や異なるプラットフォーム向けのソフトウェア開発で重要です。例えば、Windows上でLinux用のバイナリを生成する場合などに使われます。エミュレータは動作検証や互換性確保に役立ちますが、生成物は変わりません。
FAQ
Q: クロスコンパイラと通常のコンパイラの違いは何ですか?
A: 通常のコンパイラは同じ命令形式のコンピュータ向けに目的プログラムを生成しますが、クロスコンパイラは異なる命令形式のコンピュータ向けに生成します。
A: 通常のコンパイラは同じ命令形式のコンピュータ向けに目的プログラムを生成しますが、クロスコンパイラは異なる命令形式のコンピュータ向けに生成します。
Q: エミュレータはなぜ目的プログラムを生成しないのですか?
A: エミュレータは既存のプログラムを別の環境で動作させるためのソフトウェアであり、プログラムの変換や生成は行いません。
A: エミュレータは既存のプログラムを別の環境で動作させるためのソフトウェアであり、プログラムの変換や生成は行いません。
関連キーワード: クロスコンパイラ、エミュレータ、最適化コンパイラ、プログラムジェネレータ、命令形式、目的プログラム

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

