言語プロセッサ

プログラミング言語プロセッサ (英: programming language processor)は、コンピュータ言語で書かれたコードに処理を行い、別の形に変換するもののこと。 単に言語プロセッサ、言語処理系、またはトランスレータ (translator)と呼ばれることもある。コンパイラ、インタープリタ、アセンブラ、プリプロセッサなどのことをまとめて指すときに使われることが多い。
高水準言語で書かれたプログラムは、ソースプログラムと呼ばれる。たとえば、C++やJavaなどの高レベルで人間が読めるコンピューター言語、Javaバイトコードなどの中間レベル言語、アセンブリ言語や機械語などの低レベル言語、そして異なるコンピュータプラットフォーム間での同様のレベルの言語間のトランスレータも含まれる。
この用語は、同じプログラムのソフトウェア実装とハードウェア実装 (ASICマイクロチップ)の間のトランスレータ、マイクロチップのソフトウェア記述からそれを構築するために必要な論理ゲートまでのトランスレータにも使用される。
言語プロセッサの種類.
言語プロセッサは次の3種類に大別される。
コンパイラ.
コンパイラは、高級プログラミング言語を低水準プログラミング言語に変換するために使用される言語プロセッサである。プログラムを利用する前に、あらかじめ全体を一度に変換し、変換後に検出されたエラーを報告する。コンパイラは、高水準言語のコードを低水準のコードに一度に変換してからメモリに保存するため、作業に時間がかかる。コンパイラはクロスコンパイラ、トランスコンパイラなどの用語があることから推察できる通り、プロセッサやプラットフォームに依存する。
インタープリタ.
インタプリタは、高水準プログラミング言語を低水準プログラミング言語に変換するために使用される言語プロセッサであり、コンパイラと似ているが、違いは、プログラムを実行しながら一度に1行ずつコードに変換し、エラーを報告すると同時に、変換されたコードも即時実行するところである。インタプリタは、コードを読み取るとすぐにコードを実行するため、プログラムのソースコードから実行を始める場合はコンパイラよりも高速になる。一度に1行のコードを実行するため、ソフトウェア開発のデバッグツールとしてもよく使用される。インタプリタはプロセッサに依存しないため、コンパイラよりも移植性が高く、異なるハードウェアアーキテクチャ間で作業することができる。 
アセンブラ.
アセンブラは、アセンブリ言語を機械語に翻訳するために使用される言語プロセッサである。アセンブリ言語のコンパイラと同じ機能を持っており、実行までの時間もインタプリタのように速いが、アセンブリ言語は低水準プログラミング言語であるため、人間が理解することは難しい。