article

インタプリタとは、プログラミング言語で書かれたソースコードを逐次解釈しつつ実行するコンピュータ用のプログラムである。主としてインタプリタを用いて実行されるプログラミング言語をインタプリタ言語と呼ぶ。

インタプリタの中には、実行直前に一度ソースコードを中間的なコード(中間言語)に変換し、それを逐次解釈するものもある。

コンパイラと比較して、

  • 会話的な応答性に優れる。(プログラムを作成/変更してから実行するまでの手間がない)。
  • 単純な実装では実行に時間がかかりがち。しかし動的に最適化を施すことができるので一概にコンパイラより遅いとは言えない。
  • 実行には言語に対応するインタプリタ(ランタイム)環境が必要

という特徴をもつ。

主としてソースコードを逐次解釈しつつ実行することを意図して作られたコンピュータ言語は、その仕様がインタプリタ向きに作られていることが多い。たとえば、ソースコードのある部分を実行するのに、他の部分と比較しながら解釈するといったことをしないで、なるべく最初から順番に解釈するだけで実行できるような仕様になっている、などである。

主にインタプリタで実行されるプログラミング言語をスクリプト言語と呼ぶこともある。スクリプト言語の定義は非常にあいまいで、インタプリタで実行されることと必ずしも対応しない。スクリプト(言語)と呼んだ場合、そのプログラムは多くの場合インタプリタで実行される。

主にインタプリタで実行される言語でも、コンパイラによって処理してから実行することが可能な場合もある。コンパイラによって処理することが一般的な言語についても、インタプリタが実装されている場合もある。

ジャストインタイムコンパイラ


もともとインタプリタとして実行可能なものを、インタプリタ内で機械語にコンパイルして実行するものがある。次のようなものはジャストインタイムコンパイラなどと呼ばれる。

  • バーチャルマシンバイトコードを実行するインタプリタとしてとらえることもできるので、JavaやPythonの処理系はインタプリタともコンパイラとも呼べる。

  • Perlの処理系はユーザーからはインタプリタで利用しているように見せるが、内部ではコンパイルを行ってメモリ上に実行コードを作ってから実行している。内部的な動作はコンパイラに分類されるが、ツールとしての役割はインタプリタであるとも解釈できる。

デバッグ、教育用インタプリタ


通常C言語はコンパイラで処理されるが、デバッグ目的および教育目的で、インタプリタ型のC言語もあった。MS-DOS時代に、いくつかの製品が提供されていた。C-Terpなどがその様な製品の例である。C/C++のインタプリタはほかにCINT(CINT)やCh(Ch_interpreter)がある。

インタプリタで実行されることが一般的なプログラミング言語


プログラミング

Interpret | Fortolker | Interpreter | Interpreter (computing) | Intérprete informático | Interpretaator | Ohjelmointikielen tulkki | Interprète (informatique) | מפרש (תוכנה) | Túlkur (tölvunarfræði) | 인터프리터 | Interpretatorius | Interpreter | Interpreter | Интерпретатор | Interpretator | อินเทอร์พรีเตอร์ | Інтерпретатор | Trình thông dịch

 

This article is licensed under the GNU Free Documentation License. It uses material from the "インタプリタ".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld