プログラミング言語プロセッサ (: programming language processor)は、コンピュータ言語で書かれたコードに処理を行い、別の形に変換するもののこと[1][2]。 単に言語プロセッサ言語処理系、またはトランスレータ (translator)と呼ばれることもある。コンパイラインタープリタアセンブラプリプロセッサなどのことをまとめて指すときに使われることが多い。

高水準言語で書かれたプログラムは、ソースプログラムと呼ばれる。たとえば、C++Javaなどの高レベル人間が読めるコンピューター言語Javaバイトコードなどの中間レベル言語、アセンブリ言語機械語などの低レベル言語、そして異なるコンピュータプラットフォーム間での同様のレベルの言語間のトランスレータも含まれる[1]

この用語は、同じプログラムのソフトウェア実装とハードウェア実装 (ASICマイクロチップ)の間のトランスレータ、マイクロチップのソフトウェア記述からそれを構築するために必要な論理ゲートまでのトランスレータにも使用される[要出典]

言語プロセッサの種類

編集

コンパイラ

編集

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

インタプリタ

編集

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

アセンブラ

編集

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

関連項目

編集

脚注

編集

参考文献

編集
  • Horowitz, Ellis, ed (1979). written at University of North Carolina at Chapel Hill. Assemblers, Compilers, and Program Translation. Computer software engineering series (1st printing, 1st ed.). Potomac, Maryland, USA: Computer Science Press, Inc.. ISBN 0-914894-23-4. ISSN 0888-2088. LCCN 78--21905. オリジナルの2020-03-20時点におけるアーカイブ。. https://web.archive.org/web/20200320183710/https://books.google.de/books?id=x84mAAAAMAAJ&redir_esc=y 2020年3月20日閲覧。  (2+xiv+270+6 pages)
  • Why Hasn't AI Mastered Language Translation?”. Singularity Hub. Singularity University (2018年3月4日). 2019年12月29日時点のオリジナルよりアーカイブ2020年2月2日閲覧。
  • Language processors”. Columbia University (Fall 2013). 2019年6月24日時点のオリジナルよりアーカイブ2020年2月2日閲覧。
  • Tucker, Allen; Belford, Geneva G. "Computer science". Encyclopædia Britannica. 2019年7月23日時点のオリジナルよりアーカイブ。2020年2月2日閲覧