言語プロセッサ

プログラミング言語プロセッサ (英: programming language processor)は、プログラミング言語で書かれたコードに処理を行い、別の形に変換するもののこと。  単に言語プロセッサ、言語処理系、またはトランスレータ (translator)と呼ばれることもある。コンパイラ、インタープリタ、アセンブラ、プリプロセッサなどのことをまとめて指すときに使われることが多い。
高水準言語で書かれたプログラムは、ソースプログラムと呼ばれる。たとえば、C++やJavaなどの高レベルで人間が読めるコンピューター言語、Javaバイトコードなどの中間レベル言語、アセンブリ言語や機械語などの低レベル言語、そして異なるコンピュータプラットフォーム間での同様のレベルの言語間のトランスレータも含まれる。
この用語は、同じプログラムのソフトウェア実装とハードウェア実装 (ASICマイクロチップ)の間のトランスレータ、マイクロチップのソフトウェア記述からそれを構築するために必要な論理ゲートまでのトランスレータにも使用されるdate=July 2019。

**言語プロセッサの種類**

**コンパイラ**
コンパイラは、高水準プログラミング言語を低水準プログラミング言語に変換するために使用される言語プロセッサである。プログラムを利用する前に、あらかじめ全体を一度に変換しようとし、変換中に検出されたエラーを報告する。コンパイラは、高水準言語のコードを低水準のコードに一度に変換してからメモリに保存するため、作業に時間がかかる。コンパイラはクロスコンパイラ、トランスコンパイラなどの用語があることから推察できる通り、プロセッサやプラットフォームに依存する。

**インタプリタ**
インタプリタは、高水準プログラミング言語を、逐次実行するプログラムである。インタプリタは、コードを読み取るとすぐにコードを実行するため、プログラムのソースコードから実行を始める場合はコンパイラよりも高速になる。一度に少しずつコードを実行するため、ソフトウェア開発のデバッグツールとしてもよく使用される。インタプリタはプロセッサに依存しないため、コンパイラよりも移植性が高く、異なるハードウェアアーキテクチャ間で作業することができる。

**アセンブラ**
アセンブラは、アセンブリ言語を機械語に翻訳するために使用される言語プロセッサである。アセンブリ言語のコンパイラと同じ機能を持っており、実行までの時間もインタプリタのように速いが、アセンブリ言語は低水準プログラミング言語であるため、人間が理解することは難しい。

**関連項目**
 バイナリトランスレータ（バイナリからバイナリ、通常はコード）- アセンブリ言語トランスレータ（低レベルのソースからソース、コード）- トランスコンパイラ（高レベルのソースからソース、コード）- リライター（ソースからソース、通常はコード）- ファイルコンバーター（バイナリからバイナリ、通常はデータ）- トランスコーダー（バイナリからバイナリ、データ）

**脚注**

**参考文献**
 cite book |title=Assemblers, Compilers, and Program Translation |author-first=Peter |author-last=Calingaert |editor-first=Ellis |editor-last=Horowitz |editor-link=Ellis Horowitz |date=1979 |orig-year=1978-11-05 |series=Computer software engineering series |publisher=Computer Science Press, Inc. |publication-place=Potomac, Maryland, USA |location=University of North Carolina at Chapel Hill |edition=1st printing, 1st |isbn=0-914894-23-4 |issn=0888-2088 |lccn=78-21905 |url=https://books.google.com/books?id=x84mAAAAMAAJ |accessdate=2020-03-20 |url-status=live |archiveurl=https://web.archive.org/web/20200320183710/https://books.google.de/books?id=x84mAAAAMAAJ&redir_esc=y |archivedate=2020-03-20 (2+xiv+270+6 pages)- cite web |title=Why Hasn't AI Mastered Language Translation? |author-first=David |author-last=Pring-Mill |work=Singularity Hub |publisher=Singularity University |date=2018-03-04 |url=https://singularityhub.com/2018/03/04/why-hasnt-ai-mastered-language-translation/#sm.00000g1rmbl85mcrmqbgjyoco3zrf |access-date=2020-02-02 |url-status=live |archive-url=https://web.archive.org/web/20191229055424/https://singularityhub.com/2018/03/04/why-hasnt-ai-mastered-language-translation/#sm.00000g1rmbl85mcrmqbgjyoco3zrf |archive-date=2019-12-29- cite web |title=Language processors |author-first=Stephen A. |author-last=Edwards |publisher=Columbia University |date=Fall 2013 |url=http://www1.cs.columbia.edu/~sedwards/classes/2013/w4115-fall/processors.pdf |access-date=2020-02-02 |url-status=live |archive-url=https://web.archive.org/web/20190624175913/http://www1.cs.columbia.edu/~sedwards/classes/2013/w4115-fall/processors.pdf |archive-date=2019-06-24- cite encyclopedia |title=Computer science |author-first1=Allen |author-last1=Tucker |author-first2=Geneva G. |author-last2=Belford |encyclopedia=Encyclopædia Britannica |url=http://www.britannica.com/EBchecked/topic/130675/computer-science/168860/High-level-languages |access-date=2020-02-02 |url-status=live |archive-url=https://web.archive.org/web/20190723203047/https://www.britannica.com/science/computer-science |archive-date=2019-07-23