インタプリタ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

この項目ではコンピュータ・ソフトウェアについて記述しています。その他の用例についてはインタプリタ (曖昧さ回避)をご覧ください。

インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードを逐次解釈しながら実行するソフトウェアである。プログラムの実行に主としてインタプリタが用いられるプログラミング言語をインタプリタ言語と呼ぶ。

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

コンパイラ方式と比較して、

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

という特徴をもつ。

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

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

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

[編集] バイトコードインタプリタ

もともとインタプリタとして実行可能なものを、インタプリタ内でバイトコードにコンパイルして実行するものがある。次のようなものはバイトコードインタプリタなどと呼ばれる。

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

[編集] デバッグ、教育用インタプリタ

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

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

ことばこって?

「ことばこ」は、歴史の人物から最先端テクノロジーまで、なんでも調べられるオンライン百科事典です。ウィキペディア財団が運営を行なっているwikipedia.orgから引用をしています。

おススメサイト
トラブログ
アレどう?
アフィリエイトB