応用情報技術者試験 令和5年秋 午前問18 解説付き過去問
問題
あるコンピュータ上で、異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムはどれか。
正解
解説
この問題は、異なる命令形式のコンピュータ上で動作する目的プログラムを生成できる言語処理プログラムに関する知識を問うものです。
- 通常のコンパイラの動作
通常のコンパイラは、ある特定のプログラミング言語で記述されたソースコードを、そのコンパイラ自身が動作しているコンピュータの命令セットに対応した目的プログラム(オブジェクトコード)に変換します。たとえば、Windows上で動作するCコンパイラは、Windows上で実行可能な形式のバイナリを生成します。 - クロスコンパイラの特徴
クロスコンパイラは、ある環境上で動作しながら、別の環境向けに目的プログラムを生成するという特殊な機能を持ちます。たとえば、Windows上で動作するクロスコンパイラを使って、組込み用プロセッサ(例:ARMアーキテクチャ)向けの機械語プログラムを生成することが可能です。このように、開発環境と実行環境が異なる場合に活用されます。
- 選択肢との関係
この問題では「異なる命令形式のコンピュータで実行できる目的プログラムを生成する」という条件に最も適しているのは、他のコンピュータアーキテクチャ向けに目的プログラムを生成できるクロスコンパイラです。その他の用語(エミュレーターや最適化コンパイラ、プログラムジェネレーター)はいずれもコンパイル結果の内容や動作環境に関する役割が異なります。
以上より、異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムとして正しいのは、クロスコンパイラです。