解释器风格
1.首先要理解什么是解释器
对于初学者的我来说,当听到解释器这一名词时,我首先弹出的概念是它可以把某种语言转换或者翻译成及其所能理解并能正确执行的语言。也就是说解释器在程序语言执行的过程中承担了为机器"翻译"的这一步工作,但是对其中的原理就一无所知了。我经过查阅相关的信息发现,理解的还是稍有些偏差,但大体没有跑偏。
那么解释器的定义是:解释器是一个用来执行起塔程序的程序。解释器针对不同平台形成了一个虚拟机,众所周知,每一种操作系统与本身用的程序语言都存在着语义上的差异,有的明显、有点基本相同。但是无论是否大相径庭,只要在语义上存在着某种不可化解的偏差,都会导致操作系统无法正常执行程序语言想要实现的功能。
那么解释器的实用之处就在于此,将高抽象层次的程序翻译为低抽象层次所能理解的指令,以消除程序语言与硬件之间存在的差异。这样官方的说法十分的准确,我们可以清楚的了解到解释器在机器中实现的重要功能,即将程序语言(源代码)翻译为系统(操作系统和硬件)可以理解的执行代码。用一张图清楚的表示就再合适不过了:
解释器通常用来在程序语言定义的计算和有效硬件操作确定的计算之间建立对应和联系。根据结构划分可以将解释器分为简单和复杂两种,简单和小规模的解释器只能完成信息的识别和转换;而复杂的解释器需要从词法到句法,语法的复杂识别和处理。这跟我目前学的编译原理有相似之处,我想解释器本身就与编译器有着一定的共同点吧。
解释器的组成与程序当前执行的状态密不可分,程序当前执行状态通过解释器引擎可以输出到宿主系统中,从而做到转换的效果。
最后总结一下解释器风格所包含的基本构件,解释器风格由解释器引擎、存储区、被解释的源代码、解释器当前内部运行状态和需要执行的指令以及程序当前的运行状态组成,其中包含相应的Data access连接器。