言語プロセッサ
テキストエディタなどで記述されたプログラムは、そのままではコンピュータ上で実行出来ないので、何らかの処理を行い、実行出来るようにする。これを行うプログラムを総称して、言語プロセッサという。
主要な言語プロセッサ
・アセンブラ
アセンブリ言語で記述されたプログラムを機械語に翻訳する。
・コンパイラ
高水準言語で記述されたプログラムをコンパイル(翻訳)し、機械語の目的プログラムを生成する。高水準言語とは、コンピュータアーキテクチャに依存することがなく、人間の思考に近い形の文や数式でプログラムの記述が出来るプログラム言語のこと。
・インタプリタ
プログラムの命令を1つずつ解釈し、その都度翻訳しながらプログラムを実行する。
・プリプロセッサ
ある高水準言語で記述されたプログラムを別の高水準言語のプログラムに変換する。あるいは、高水準言語に付加的に定義され、記述された命令をもとに高水準言語だけを使用したプログラムに変換する。
なお、コンパイラには、現在使用しているコンピュータ、あるいは同じアーキテクチャのコンピュータ上で実行出来る目的プログラムを生成するセルフコンパイラと、異なるアーキテクチャの(命令形式が異なる)コンピュータ用の目的プログラムを生成するクロスコンパイラの2種類がある。
【参考1】
翻訳(変換)されるもととなるプログラムを原始プログラム、ソースプログラムという。
【参考2】
ソフトウェアを実行する機器と同一の機器で開発を行うことをセルフ開発という。これに対して、例えば、携帯電話用のプログラムをパソコン上で開発するなど、実行する機器とは異なる開発専用の機器で開発を行うことをクロス開発という。
その他の言語プロセッサ
ジェネレータ(生成系)
ジェネレータは、手続を記述しなくても処理条件となる入力、処理、出力に関する引数(パラメータ)を指定するだけで自動的にプログラムを生成する言語プロセッサである。UNIX系の字句解析ツールであるLexや構文解析ツールYaccも、ジェネレータに分類される。
シミュレータ(実行系)
シミュレータは、他のコンピュータ用のプログラムの命令を解読しながら実行する言語プロセッサで、これをハードウェア(マイクロプログラム)で行うものをエミュレータという。シミュレータは、開発用のコンピュータにおいて、ターゲットコンピュータ上の動きをソフト的に再現するだけであるが、エミュレータは内部動作までも模擬的に再現する。
おわりに
ここまで読んでいただきありがとうございます!
参考文献
令和02年 【春期】【秋期】 応用情報技術者 合格教本 単行本(ソフトカバー) – 2019/12/25
大滝 みや子 (著), 岡嶋 裕史 (著)
p.262,263