解释器风格

解释器风格

1、解释器

解释器是一个用来执行其他程序的程序。针对不同的硬件平台实现一个虚拟机。将高层次的程序翻译为低抽象层次的所能理解的指令,以取消在程序语言与硬件之间存在的语言差异。

解释器是通常用来在程序语言定义的计算和有硬件操作确定的计算之间建立对应和联系。完成基本的信息识别和转换,甚至可以从词法到句法,到语法复杂的识别和处理。

解释器运行程序的方法有:

1.直接运行高级编程语言 (如 Shell 自带的解释器)

2.转换高级编程语言码到一些有效率的字节码 (Bytecode),并运行这些字节码

3.以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序 (例如:JIT)

2、解释器风格

基本构件:

解释器引擎

存储区(被解释的源代码,解释器引擎当前内部控制状态的表示:在某个时刻需要执行那些指令,程序当前执行状态的表示。)

连接器(对数据区的链接访问)

3、解释器和编译器

程序语言环境分为编译和解释两大类。

编译器:编译器不会执行输入的源程序代码,而是将其翻译为另一种语言,通常是可执行的机器码或目标码,并输出到文件中以便随后链接为可执行文件并加以执行

解释器:在解释器中,程序源代码被解释器直接加以执行。

语言环境分为编译和解释两大类。

编译器不会执行输出的源程序代码,而是将其翻译成为另一种语言,通常是可执行的机器码或目标码,并输出到文件中以便链接为可执行的文件并加以执行。解释器中,源程序代码被解释器直接加以执行。

使用解释器来运行程序会比直接运行编译过的机器码来得慢,但是相对的这个直译的行为会比编译再运行来得快。这在程序开发的雏型化阶段和只是撰写试验性的代码时尤其来得重要,因为这个“编辑-直译-除错”的循环通常比“编辑-编译-运行-除错”的循环来得省时许多。

在解释器上运行程序比直接运行编译过的代码来得慢,是因为解释器每次都必须去分析并转译它所运行到的程序行,而编译过的程序就只是直接运行。这个在运行时的分析被称为"直译式的成本"。在解释器中,变量的访问也是比较慢的,因为每次要访问变量的时候它都必须找出该变量实际存储的位置,而不像编译过的程序在编译的时候就决定好了变量的位置了。

时间: 2024-10-09 20:30:14

解释器风格的相关文章

解释器风格学习

解释器是解释型语言的运行环境,如javascript,python,bash这些语言可以不经过编译直接在通过解释器的解释后运行,具有很强的灵活性,易读性和跨平台性:缺点则是运行效率普遍偏低.软件体系结构所说的解释器风格则是一般解释器采用的一种具有一定通用和规范性的软件体系结构风格. 解释器风格的特点是解析和执行输入命令,然后根据解释器来更新状态.组件包括:命令解释器,程序状态,用户界面.连接器则是紧密相联的,这种风格非常灵活,但是对于用户的要求很高一个解释器通常包括完成解释工作的解释引擎,一个包

软件体系结构---软件体系结构之解释器风格

1.软件体系结构风格 软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用.也就是说,能否在不同的软件系统中,使用同一体系结构.基于这个目的,学者们开始研究和实践软件体系结构的风格和类型问题. 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式.它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统.按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则. 对软件体系结构风

小议解释器风格

众所周知,软件体系结构有诸多风格,有了这些风格的存在,人们不用深究软件设计的细节,得知风格后便可大概了解系统或软件是如何组织和工作的. 解释器风格正是其中的一种,我们的老师在课上提到过这种风格,可在我们的教材<软件体系结构原理.方法与实践>一书中却并没有提到,所以我利用课余时间查阅了有关资料,想要了解这种风格的细节. 为了更好的理解解释器风格,需要先知道解释器的原理.下图是MS-DOS的命令解释器工作原理图: 解释器简单来说,就是一个用来解释其它程序的程序,它针对不同硬件平台建立一个虚拟机,将

关于解释器风格

这周我们了解了解释器风格 通过看书和查找资料对解释器相关的资料进行了整理 首先我们来了解一下什么是解释器: An interpreter is a program that executes another program (解释器是一个用来执行其他程序的程序). An interpreter implements a virtual machine, which may be different from the underlying hardware platform. (解释器针对不同的硬

架构风格

传统的架构风格 依据David Calvert在1996年给出了一份架构风格/模式的清单,架构风格包括了: 数据流系统——批处理,管道-过滤器. 调用-返回系统——主程序和子程序,面向对象系统,分层. 独立组件——通信过程,事件系统. 虚拟机——解释器,基于规则的系统. 以数据为中心的系统(仓库)——数据库,超文本系统,黑板. 数据流风格 面向数据的架构风格,软件的处理粒度是赤裸裸的“数据”,而不需对数据进行任何的“包装”. 批处理序列 组件为一系列固定顺序的计算单元(独立程序),组件间只通过数

管道过滤器风格

一.  概述 (个人粗浅之见) 每个系统都有自己的体系结构,每个都和其它的不同.如Windows之于Linux,美国的资本主义三权分立行政制度之于我中国社会主义人民代表大会制度,汽车的内燃机动力系统之于电动车的电机动力系统,......软件是计算机系统这个蔚蓝星球里的里的某个生态系统,丰富多彩的生态系统让这个星球充满了生机与活力.丰富多彩的软件世界里,用户眼里软件的区别也许只是界面不同,功能不同而已,但在设计人员的心中每个软件都是那么独特精巧的存在,每个软件的体系结构,构件,连接,约束,模块,功

282.软件体系结构的风格与模式

建筑模式Christopher Alexander, The Timeless Way of Building, p247, 1979每个模式是一个由三部分组成的规则,表达了特定环境.问题和解(solution)之间的关系.作为现实世界的一个成分,每个模式表达了下列三者之间的一种关系:特定环境,在该环境中反复出现的力(forces)的系统,以及协调这些力的某种空间排列.作为语言的一个成分,每个模式是一条指令,展示了这种空间排列如何被一再重复使用,目的是协调同特定环境相关的力的系统.简单地说,模式

软件体系结构基本概念汇总

这门课与UML建模,程序设计方法学一样,都是站在比较高的角度来看整个软件结构.并不是对算法,或者语言的关注.如果以后有志于成为软件架构师,就应该好好学这门课.现在我把自己整理的这门课的资料与大家分享. 二.名词解释(每题2分,共20分) 1.B/S(期中) 答:浏览器/服务器风格,是三层应用结构的一种实现方式. 具体结构:浏览器/Web服务器/数据库服务器. 2.C/S(期中) 答:客户/服务器风格,是基于资源不对等,且为共享而提出来的,定义了工作站如何与服务器相连,以实现数据和应用分布到多个处

软件体系结构知识点总结(更新中)

软件体系结构 公式 ? 体系架构=组件+连接件+约束 ? SoftwareArchitecture=Components+Connectors+Constrains 风格决定因素 ? 组件类型(例如:数据容器,过程,对象) ? 连接件类型/交互机制(例如:过程调用,事件,管道) ? 组件的拓扑分布 ? 拓扑和行为的约束(例如:数据容器不能自己改变数据,管道不能是循环的) ? 风格的代价和益处(优缺点) ? 异质的风格 Heterogeneous style): 一个系统是由不止一种风格构建的 几