言語プロセッサ

曖昧さ回避 この項目では、プログラム言語のトランスレータについて説明しています。自然言語処理については「自然言語処理」を、翻訳については「機械翻訳」をご覧ください。
プログラムの実行
一般的な概念
コードの種類
コンパイル戦略
有名なランタイム
有名なコンパイラとツールチェーン

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

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

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

言語プロセッサの種類

コンパイラ

詳細は「コンパイラ」を参照

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

インタプリタ

詳細は「インタプリタ」を参照

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

アセンブラ

詳細は「アセンブリ言語」を参照

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

関連項目

脚注

  1. ^ a b “What are compilers, translators, interpreters, and assemblers?”. MicrocontrollerTips (2017年2月17日). 2019年7月19日時点のオリジナルよりアーカイブ。2019年7月19日閲覧。
  2. ^ “Translators And Utilities For Program Development”. Software Handbook. Intel Corporation. (1984). p. 3-1. 230786-001. オリジナルの2020-01-29時点におけるアーカイブ。. https://web.archive.org/web/20200129010534/http://bitsavers.trailing-edge.com/components/intel/_dataBooks/230786-001_Intel_Software_Handbook_1984.pdf 2020年1月29日閲覧。 
  3. ^ a b c https://teachcomputerscience.com/translators/
  4. ^ a b c https://www.microcontrollertips.com/compilers-translators-interpreters-assemblers-faq/
  5. ^ a b “Chapter 5. Program execution, Section 5.2. Interpreter and Compiler”. Introduction to Programming using Python - Programming Course for Biologists at the Pasteur Institute. Pasteur Institute. (2008-02-04). pp. 37–40. オリジナルの2015-11-11時点におけるアーカイブ。. http://www.pasteur.fr/formation/infobio/python/ch05s02.html 2015年1月7日閲覧。  [1]

参考文献

  • 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日閲覧