インタープリター
(インタプリタ言語から転送)
ナビゲーションに移動
検索に移動
インタープリター(「インタプリタ」とも呼ぶ)とは、プログラミング言語で書かれた命令を読み取って処理を実行する「逐次実行系」のコンピュータープログラムのことであり、プログラミング言語の処理系の一つである。
概要[編集]
直訳すると「通訳者」である。プログラミングにおいては、逐語訳を行う処理系という意味合いで使われる。
すなわち、スクリプト言語では、コンパイルなどの事前処理を行わずに直接プログラムのソースコードを読み込ませてプログラムを実行する。これを請け負うのがインタープリターである。
インタープリターのごく単純な実装では、ソースコードはコマンドの羅列なので、それを「逐次実行」していくものである。
より抽象的な概念を扱えるようにするには、ソースコードを中間モデルに翻訳してから、より低水準の処理に変換していく方式が考えられる。
特徴[編集]
- 単純な「逐次実行」では処理が遅い。そのため各種の最適化[1]を施すことで性能を向上させる試みが為されている。
- 「逐次実行」ゆえにデバッグしやすいというメリットがある。
- どすこいな例では、「実行中に処理を止めて、プログラムを書きかえて、処理を続行する」というのがある。「日本のストールマン」として知られるLISPハッカーである竹内郁夫さんの得意技である。
様々なインタープリター[編集]
- コマンドラインインタープリター:UNIX、LinuxにおけるUnixシェル、Windowsにおけるコマンドプロンプト、およびPowerShellなど「対話型」でコマンド入力・結果出力を得る「コマンドラインシェル」もインタープリターの一種。シェルスクリプト、またはバッチファイルを記述してシェルへ渡すことで、対話型ではない自動処理をさせることが出来る。
- Windows Script Host:Windowsにおいて、バッチファイルの欠点を補うべくWindows Script Hostが登場したが、逆に強力過ぎてセキュリティ問題が生じ、PowerShellへの移行が勧められている。
- 一部のプログラミング言語、例えばPerl、およびPythonは最初からコンパイルせずコードを逐次実行するよう意図されている。
- 高機能テキストエディタなどの一部アプリケーションには組み込みインタープリターを備え、スクリプトを記述して実行させることにより、自身を自動制御したり他アプリケーションと連携したりできるものがある。Emacs(Lisp方言)、秀丸エディタ(C言語に似た独自言語)が知られている。
脚注[編集]
- ↑ これは処理系固有の情報が多く、簡単には説明できないので、知りたい方はそれぞれの処理系の最適化について調べてください。