解释程序

按照源程序的指令或语句的动态执行顺序,逐条或逐句翻译并立即执行的翻译程序解释程序的特点是把源程序直接翻译成加工输入数据,产生所求的动作,而不是产生目标语言形式的目标程序。

图

结构和工作过程

解释程序由一个总控程序和若干个执行子程序组成(见图)。解释程序的工作过程如下:首先,由总控程序执行初始准备工作,置工作初态;然后,从源程序中取一个语句S,并进行语法检查。如果语法有错,则输出错误信息;否则,根据所确定的语句类型转去执行相应的执行子程序。返回后检查解释工作是否完成,如果未完成,则继续解释下一语句;否则,进行必要的善后处理工作。

适用范围

解释程序的突出优点是可简单地实现,且易于在解释执行过程中灵活、方便地插入修改和调试措施,但最大缺点是执行效率很低。例如,需要多次重复执行的语句,采用编译程序时只需要翻译一次;但在解释程序中却需要重复翻译,重复执行。根据这些特点,解释程序适用于如下场合:

(1)有些语言中的大多数语句,如字符串加工语言中的字符串查找语句和加工语句,其执行时间比翻译时间长得多。对于这种语言,采用生成性方案,效果甚微,而采用解释性方案则易于实现。

(2)为了便于用户调试和修改程序,又能保证程序高效运行,很多程序设计语言配置两个加工系统,一个用于调试,一个用于有效地运行。调试用的系统一般用解释程序实现,以便及时监视运行情况、动态地输出调试信息和灵活地修改错误。

(3)交互式会话语言(如BASIC,APL),要为用户提供并行、交错编写、执行、调试和修改源程序的功能。采用解释程序易于实现这些功能。

随着超大规模集成电路的迅速发展,不少人提出用微程序设计方法实现高级程序设计语言解释程序的想法,随之出现了如 “FORTRAN机”之类的高级语言机器的概念。