基本情報技術者試験 2002年度 = 平成14年度・秋期 午前 問41

 プリコンパイラの説明として、適切なものはどれか。

 ア  ある言語でコーディングされたプログラムを、別の言語のプログラムに変換するプログラムである。
 イ  あるコンピュータ上で実行されるオブジェクトプログラムを、それとはアーキテクチャが異なるコンピュータ上で生成するコンパイラである。
 ウ  高水準言語でコーディングされたソースプログラムを、オブジェクトプログラムに変換するプログラムである。
 エ  高水準言語に付加的に定義された機能と文法に従ってコーディングされたプログラムを、元の高水準言語だけを使用したプログラムに変換するプログラムである。

解答

 エ

解説

 最も有名なプリコンパイラは、C言語の前処理プログラムです。たとえば、
  #define ABC 100
という宣言があれば、(文字列リテラル内部などの特別なものをのぞいて)ソースプログラム中のABCのすべてが100に置換されます。プリコンパイラで処理される部分は、言語本来の文法とは異なる体系をもちます。

 ある言語でコーディングされたプログラムを、別の言語のプログラムに変換するプログラムはトランスレータです。古いものとして、構造化プログラミング言語をFORTRANに変換するRATFORなどがあります。また、初期のC++もトランスレータとして実装されており、いったんC言語のソースプログラムに変換してコンパイルする方式でした。

 あるコンピュータ上で実行されるオブジェクトプログラムを、それとはアーキテクチャが異なるコンピュータ上で生成するのは、クロスコンパイラです。

 高水準言語でコーディングされたソースプログラムを、オブジェクトプログラムに変換するプログラムは、コンパイラです。

 高水準言語に付加的に定義された機能と文法に従ってコーディングされたプログラムを、元の高水準言語だけを使用したプログラムに変換するプログラムです。


BohYoh.comトップページへ