平成23年度 特別 午前 問22
ソフトウェア
目的プログラムに関する問題
あるコンピュータ上で,異なる命令形式のコンピュータで実行できる目的プログラムを生成する言語処理プログラムはどれか。
- アエミュレータ
- イクロスコンパイラ
- ウ最適化コンパイラ
- エプログラムジェネレータ
答えと解説を見る
✓ これが正解イクロスコンパイラ
解説
動かす機械と作る相手が違うのがクロスコンパイラです。
設問を二つに割ると見通しが立ちます。一つは、その道具自身がどの機械の上で動くのか。もう一つは、その道具が作る目的プログラムがどの機械向けなのか。この二つが同じなら普通のコンパイラで、違えばクロスコンパイラです。クロスは横切るという意味で、手元の機械の上で、別の命令形式の機械向けの目的プログラムを生成します。よく使われるのは組込み機器の開発です。マイコンや家電の中にある機械には、翻訳のための記憶や入出力がそろっていませんから、能力のあるパソコンの上で原始プログラムを翻訳し、できあがった目的プログラムだけを機器へ書き込みます。設問はもう一つ、生成する言語処理プログラムと言い切っています。この一言が効いていて、できあがったものを受け取って動かすだけの道具は、命令形式の違いを扱っていてもここでは外れます。言語処理の道具は、入口に何を受け取り、出口に何を出すかで並べると混ざりません。仕様の指定から原始プログラムを出すもの、原始プログラムから同じ機械向けの目的プログラムを出すもの、原始プログラムから別の機械向けの目的プログラムを出すもの、そして目的プログラムを受け取って動かすものの四つです。設問が求めているのは三つ目にあたります。
ほかの選択肢はなぜ違うのか
- アエミュレータ:他の機械のふりをして、その機械向けのプログラムを動かす側の道具です。異なる命令形式を扱う点までは設問と重なりますが、何かを作り出す働きを持ちませんので、生成する道具としては選べません。
- ウ最適化コンパイラ:翻訳した結果を速く、また小さくする工夫を加えたコンパイラです。行き先の命令形式は元のままですから、良くする方向の工夫であって、別の機械向けに作り替える働きではありません。
- エプログラムジェネレータ:パラメタや仕様の指定から自動で作り出すのは原始プログラムであって、機械がそのまま実行する形式ではありません。出口が一段手前にありますので、設問が指している道具には当たりません。
出典:平成23年度 特別 応用情報技術者試験 午前 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)