インタプリタ
Lua
(ループを全く含まないような、全ての命令が一回だけ解釈され、一回だけ実行されるような(ある意味、特殊な)プログラムであれば、解釈+実行のトータルの時間は、インタプリタでもコンパイラでもさほど差は生じない。だが、実用的なプログラムは一般的に、多数のループを含んでおり、そうしたプログラムではインタプリタのほうが実行を完了するまでの時間が多くかかり、特に、ループ回数が多ければ多いほど(古典的な、単純な)インタプリタの相対的な遅さは顕著になってくる。→#長所と短所
その後、そうした欠点を解消すべく、(1990年代ころになって)毎回毎回、(高級言語から)機械語に変換するのではなく、中間言語に変換することで高速化をはかるインタプリタなどが作りだされた。
改良の結果、古典的な意味での「インタプリタ」と「コンパイラ」の双方の性質を備えたようなインタプリタが登場し、複雑化してきている。
(近年の)インタプリタがおこなう、(旧来の)コンパイラが行っているような変換のひとつとしては、高速化などを目的とした、実行時コンパイラによる動的コンパイルを挙げることができる。
インタプリタは、コマンドライン用言語やグルー言語でよく使われている。
自己書き換えコードはインタプリタでは容易に実装できる。これは LISP と人工知能研究がインタプリタの起源であったこととも関係している。
仮想機械を使って、あるアーキテクチャを別のアーキテクチャ上で実行させる仮想化は、基本的にインタプリタである。
サンドボックス: インタプリタまたは仮想機械はソースコードの命令を全て実際に実行することを強制されない。特にセキュリティを脅かすような処理の実行は拒否できる。
インタプリタという手法、すなわち、「そのハードウェアが直接解釈するのではないプログラム」を受け取り、「プログラムで実装された抽象的な、あるいは仮想上のコンピュータで解釈実行する」というプログラムの実行法は、コンピュータが登場した時から、ないしそれ以前からある。
万能チューリングマシンは、「どんなチューリングマシンについても、それを模擬できるチューリングマシン」というもので、ある種のエミュレータないしインタプリタであり、考察されたのは電子式のコンピュータの誕生する以前である。
EDSAC(実用的な機能を持ったプログラム内蔵方式の世界初の電子計算機とされている)において既に、ある種のインタプリタが実装されていたことが記録に残っている。同機におけるプログラミングの技法が書かれた The Preparation of Programs for an Electronic Digital Computer の chapter 2 の § 2-22 Interpretive subroutines で説明されているが、複素数演算などのサブルーチンを明示的にサブルーチンとして呼ぶのではなく、通常の加減算などと同様の形式のプログラムをインタプリタで解釈してそれらのサブルーチンを利用する、というものである。
Ceylon
CoffeeScript
Dart
Haxe
JSX
TypeScript