直譯器

历史

第一个解释器是由史帝芬·罗素（Steve Russell）写成的LISP的解释器，基于IBM 704的机器代码。

字节码解释器

考量程序运行之前所需要分析的时间，存在了一个介于解释与编译之间的可能性。例如，用Emacs Lisp所撰写的源代码会被编译成一种高度压缩且最优化的另一种Lisp源代码格式，这就是一种字节码（bytecode），而它并不是机器代码（因此不会被绑死在特定的硬件上）。这个"编译过的"码之后会被字节码直译器（使用C写成的）翻译。在这种情况下，这个"编译过的"码可以被说成是虚拟机（不是真的硬件，而是一种字节码解释器）的机器代码。这个方式被用在Open Firmware系统所使用的Forth代码中：原始程序将会被编译成"F code"（一种字节码），然后被一个特定平台的虚拟机解释和运行。

即时编译

即时编译（Just-in-time compilation）是指一种在运行时期把字节码编译成原生机器代码的技术;这项技术是被用来改善虚拟机的性能的。该技术在近几年来才开始获得重视，而它后来模糊了解释、字节码解释及编译的差异性。在.NET和Java的平台上都有用到JIT的技术。大约在1980年代Smalltalk语言出现的时候JIT的技术就存在了。

一个简单的解释器的例子

在文学编程文章中有一个简单的程序和一个解释器。

打孔卡读卡器

“interpreter”这个字眼有时候是指一些可以读取打孔卡的机器。这些机器可以读取卡片上的孔并以人们读得懂的格式打印出来。IBM 550数字读卡器和IBM 557字母读卡器是主要的两个例子。