解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。因此,解释程序不产生源程序的目标程序,这是它和编译程序的主要区别。下图显示了以解释方式实现高级语言的3种方式:
源程序被直接解释执行的处理方式如图中的标记A所示。这种解释程序对源程序进行逐个字符的检查,然后执行程序语句规定的动作。这类解释程序通过反复扫描源程序来实现程序的运行,效率很低。
解释程序也可以先将源程序翻译成某种中间代码形式,然后对中间代码进行解释来实现用户程序的运行,这种翻译方式如图中的标记B和C所示。通常,在中间代码和高级语言的语句间存在一一对应的关系。解释方式B和C的不同之处在于中间代码的级别,在方式C下,解释程序采用的中间代码更接近于机器语言。
解释程序基本结构:这类系统通常可以分成如下两部分。
(1)分析部分:包括与编译过程相同的词法分析、语法分析和语义分析程序,经语义分析后把源程序翻译成中间代码。
(2)解释部分:用来对第一部分产生的中间代码进行解释执行。