インタプリタ
プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながら実行するプログラム / ウィキペディア フリーな encyclopedia
親愛なるWikiwand AI, これらの重要な質問に答えるだけで、簡潔にしましょう:
トップの事実と統計を挙げていただけますか インタプリタ?
この記事を 10 歳向けに要約してください
すべての質問を表示
「インタープリタ」はこの項目へ転送されています。元々の意味については「通訳」を、その他の用法については「インタープリタ (曖昧さ回避)」をご覧ください。 |
インタプリタ(英: interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながら実行するプログラムのこと[1]。「インタープリタ」「インタープリター」などと表記することもある。
インタプリタは、およそ次のいずれかの動作をするプログラムである。
- ソースコードを直接解釈実行する。
- ソースコードを何らかの効率的な中間的なコード(中間表現)に、最初に全て変換して、あるいは、逐次変換しながら、解釈実行する。
- 何らかのコンパイラが生成し出力した、何らかの効率的な(マシンに依存しない、あるいは、マシン依存の)中間表現を解釈実行する[注 1]。
このように程度の差はあるが、ソフトウェアがソフトウェアを実行するという形になる。
いずれにしても、「インタプリタ言語」などという分類は本来は存在しない。単にそれぞれの言語の代表的な処理系の実装がインタプリタであったというだけで、理論上はどの言語であってもインタプリタとコンパイラのどちらでも作ることができる。しかしながら、インタプリタかしか存在しない言語があるが故に、「インタプリタ言語」や「コンパイラ言語」と区別されているのが現実である。インタプリタは実行中何度もプログラムを再解釈するため、ダイナミックディスパッチ(英語版)やダイナミックバインディング、リフレクション、動的型付けのような機能を実現することが容易である。一方、コンパイラは事前にCPUで実行できるように変換するだけで実行には関与しないため、実行中に振る舞いを変更したいときはそのためのプログラムを別途用意しなければならないケースがほとんどである。さらに、自前の言語から既存の何らかの表現に変換するには、その表現と対応付けるための知識と技術が必要であり、言語機能が大規模化や複雑化するほど、既存の表現との互換性をできるだけ確保しながら、自前の言語での振る舞いを実現することは難しくなる。中間表現も自前であれば、変換する手間はずっと楽になる。