[0107] 言語プロセッサ

平成11年度春期 (旧)第2情報処理技術者試験より
 言語プロセッサに関する記述のうち、正しいものはどれか。
アセンブラは、ある処理系用に書かれた原始プログラムを、他の処理系用の原始プログラムに変換する。
テスト対象のインタプリタは、他のコンピュータ用のプログラムを解読し、実行するマイクロプログラムである。
ジェネレータは、入力・処理・出力に関するいろいろな条件をパラメタで記述し、問題の処理目的に応じたプログラムを生成する。
トランスレータは、高水準言語で書かれたプログラムを、解釈しながら実行する。

正解

解説

 言語プロセッサに関する問題です。

 言語プロセッサとは、人間が記述したプログラムをコンピュータが理解できる言語、すなわち機械語にに変換するプログラムの総称のことです。機械語は、すべて'0' '1'で表現されるプログラムであり、人間が直接機械語を読んだり、記述したりすることは大変困難です。そこで、人間がわかりやすい言語(C や Javaなど)をつかってプログラムを記述し、言語プロセッサを使って機械語に変換することで、プログラミングの生産性を飛躍的に向上することができました。

 言語プロセッサには、大きく分けて以下の4種類があります。これらはすべて暗記しておきましょう。

■ アセンブラ(assembler)

 アセンブラ言語で記述した原始プログラム(機械語以外の言語を用いて人間が記述したプログラムのこと、ソースプログラムと同義) を機械語のプログラムに翻訳する言語処理プログラムです。アセンブラ言語は、コンピュータが直接理解できる機械語の各命令にニーモニック(略語)を割り当てたものなので、基本的にアセンブラ言語の命令は、機械語の命令と1対1で対応しているのが特徴です。



■ コンパイラ(compiler)

 C や COBOL といった手続き型言語の原始プログラムを機械語のプログラムに翻訳する言語処理プログラムです。アセンブラ言語のように機械語と命令が1対1で対応するのではなく、通常は1対多の対応となります。

 コンパイラには、コンパイルする際に原始プログラムの記述内容を解析して、できるだけ効率の良い目的プログラム(原始プログラムからコンパイルされたプログラム)を作成する機能を持ったものがあり、これを特に最適化コンパイラといいます。



■ インタプリタ(interpreter)

 BASIC などのように、手続き型言語で記述された原始プログラムを、1命令ずつ翻訳しながら実行する言語プログラムです。コンパイラでは、原始プログラムをコンパイルしないと実行できませんが、インタプリタは、原始プログラムをそのまま実行できる点が特徴です。

 インタプリタは、コンパイルの手間がかからないので扱いやすいのですが、1命令ずつ翻訳していくので、プログラムの実行速度ではコンパイラには劣ります。



■ ジェネレータ(generator)

 基本的な処理機能を組み合わせたり、それらにパラメータを与えることによって機械語を生成する言語プログラムです。ジェネレータの最大の特徴は、すべての原始プログラムを記述しなくてもプログラムが作成できる点にあります。こうした言語は、非手続き型言語と呼ばれます。



それでは、選択肢をみていきましょう。

 アセンブラは、ある処理系用に書かれた原始プログラムを、他の処理系用の原始プログラムに変換する。
アセンブラは機械語への翻訳を行ないます。

 テスト対象のインタプリタは、他のコンピュータ用のプログラムを解読し、実行するマイクロプログラムである。
他コンピュータ用ではなく、あくまでインタプリタするコンピュータ用のプログラム解読・実行を行ないます。

 ジェネレータは、入力・処理・出力に関するいろいろな条件をパラメタで記述し、問題の処理目的に応じたプログラムを生成する。
正しい記述です。

 トランスレータは、高水準言語で書かれたプログラムを、解釈しながら実行する。
インタプリタの説明です。


 以上より、ウが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題