版权归原作者所有,如有侵权,请联系我们

[科普中国]-嵌入式解释程序

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

解释程序是按照源程序语句的动态执行顺序,逐句地进行解释而后立即执行的翻译程序。嵌入式解释程序基于传统的解释程序,又针对嵌入式系统特征引入了新的内容。嵌入式处理器因其应用环境不同而不同,不同的解释程序也有各自适用的范围。

简介解释器,是一种计算机程序,能够把高阶编程语言一行一行解释运行。解释器像是一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它不会一次把整个程序翻译出来,而是每翻译一行程序叙述就立刻运行,然后再翻译下一行,再运行,如此不停地进行下去。解释器的好处是它消除了编译整个程序的负担,程序可以拆分成多个部分来模块化,但这会让运行时的效率打了折扣。相对地,编译器已一次将所有源代码翻译成另一种语言,如机器码,运行时便无需再依赖编译器或额外的程序,故而其运行速度比较快。解释器运行程序的方法有:直接运行高级编程语言(如Shell内置的解释器);转换高级编程语言码到一些有效率的字节码(Bytecode),并运行这些字节码;以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序。嵌入式解释程序是指运行在嵌入式处理器和应用在嵌入式系统中的解释程序。尽管嵌入式解释程序消除了编译负担,使程序拆分成多个部分来模块化,但也降低程序的运行效率。

嵌入式编译程序早期的嵌入式编译器用汇编语言直接编写,不同类型处理器所使用的汇编语言也都不尽相同,极大地限制了嵌入式系统前进的步伐。现阶段嵌入式编译程序由高级语言编写,使开发人员尽最大的可能独立于计算机硬件系统结 构之外来进行程序开发设计。嵌入式编译程序是指应用在嵌入式系统中的编译程序。在计算机上执行一个高级语言程序需要两步:利用编译器将高级语言程序翻译成为机器语言程序;运行得到的机器语言程序求得计算结果。编译器是将高级语言在逻辑等价的原则上翻译为底层的汇编语言或者机器语言的计算机程序。

嵌入式系统嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC中BIOS的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。嵌入式解释程序是指运行在嵌入式处理器和应用在嵌入式系统中的解释程序。嵌入式处理器一般是专用的,这样便于优化设计,因此,存在多种嵌入式处理器类型。

DSP(Digital Signal Processor)是面向数字信号处理的专用处理器。体系结构常采用专用的地址计算部件和寄存器,支持数字滤波和快速傅立叶变换等算法的高效处理。

微控制器是面向控制领域的嵌入式处理器,一般只有很有限的计算和存储资源,常采用复杂指令集,以获得紧凑的代码。

RISC处理器的指令集具有规整的指令长度和机器周期,通过流水化的设计获得高吞吐量常采用load一store体系结构,即指令仅对寄存器中操作数进行运算,只有load、store指令执行存储操作一般具有较多的通用寄存器。

多媒体处理器具有较规整的体系结构,为支持多媒体应用中固有的大量并行性常采用专用的指令集1。

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

解释程序的一般结构可以分为解释模块和运行模块两个主要模块。前者的职能是按源程序动态执行顺序逐个输入语句,并对单个语句进行分析和解释,包括语法和语义的正确性检验、生成等价的中间代码或机器语言代码,以及错误信息提供等处理。后者的职能是运行语句的翻译代码,并输出中间结果或最终结果。由于解释程序的设计思想不同,运行模块的执行方式也不同。一种方法是解释模块直接生成源程序语句等价的机器语言代码;通常一个语句生成多条机器指令的代码段。运行模块负责控制这段代码的执行并处理中间结果(保存或输出)。另一种方法是,解释模块生成语句等价的中间代码(但不是机器语言代码),如程序调用及其参数形式。运行模块负责选择相应功能部分并控制中间代码的执行,并处理相关运行结果。

解释程序的工作过程如下:

①由总控程序完成初始化工作。

②依次从源程序中取出一条语句进行语法检查,如有错,输出错误信息;如果通过了语法检查,则根据语句翻泽成相应的指令并执行它。

③检查源程序是否已经全部解释执行完毕,如果未完成则继续解释并执行下一条语句,直到全部语句都处理完毕。

解释程序的工作方式非常适于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。

这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。对源程序边解释翻译成机器代码边执行的高级语言程序。所以,解释程序的功能是:解释执行高级语言程序。由于它的方便性和交互性较好,早期一些高级语言采用这种方式,如BASIC、dBASE。

本词条内容贡献者为:

宋春霖 - 副教授 - 江南大学