编译原理概念_名词解释

编译原理概念_名词解释

ID:5989842

大小:21.00 KB

页数:2页

时间:2017-12-30

编译原理概念_名词解释_第1页
编译原理概念_名词解释_第2页
资源描述:

《编译原理概念_名词解释》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、编译过程的六个阶段:词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成解释程序:把某种语言的源程序转换成等价的另一种语言程序——目标语言程序,然后再执行目标程序。解释方式是接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句。编译程序:就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序(机器语言程序或汇编语言程序)。解释程序和编译程序的根本区别:是否生成目标代码句子的二义性(这里的二义性是指语法结构上的。):文法G[S]的一个句子如果能找到两种不同的最左推导(或最右推导),或者存在两

2、棵不同的语法树,则称这个句子是二义性的。文法的二义性:一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法。LL(1)的含义:(LL(1)文法是无二义的;LL(1)文法不含左递归)第1个L:从左到右扫描输入串第2个L:生成的是最左推导1:向右看1个输入符号便可决定选择哪个产生式某些非LL(1)文法到LL(1)文法的等价变换:1.提取公因子2.消除左递归文法符号的属性:单词的含义,即与文法符号相关的一些信息。如,类型、值、存储地址等。一个属性文法(attributegrammar)是一个三元组A=(G,V,F)G:上下文无关文法。V:属性的有穷集。每个属性与文法的一个终结符或非

3、终结符相连。属性与变量一样,可以进行计算和传递。F:关于属性的断言或谓词(一组属性的计算规则)的有穷集。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。综合属性:若产生式左部的单非终结符A的属性值由右部各非终结符的属性值决定,则A的属性称为综合属继承属性:若产生式右部符号B的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的,则B的属性为继承属性。(1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。(2)终结符只有综合属性,没有继承属性,它们由词法程序提供。在计算时:综合属性沿属性语法树向上传递;继承属性沿属性语法树向下传

4、递。语法制导翻译:是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。语法制导翻译实现:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。中间代码(中间语言)1、是复杂性介于源程序语言和机器语言的一种表示形式。2、一般,快速编译程序直接生成目标代码。3、为了使编译程序结构在逻辑上更为简单明确,常采用中间代码,这样可以将与机器相关的某些实现细节置于代码生成阶段仔细处理,并且可以在中间代码一级进行优化工作,使得代码优化比较容易实现。何谓中间代码:源程序的一种内部表示,不依赖目标机的结构,易于代码的机械生成。为

5、何要转换成中间代码:(1)逻辑结构清楚;利于不同目标机上实现同一种语言。(2)便于移植,便于修改,便于进行与机器无关的优化。中间代码的几种形式:逆波兰记号,三元式和树形表示,四元式符号表的一般形式:一张符号表的的组成包括两项,即名字栏和信息栏。信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,名字栏也称主栏。主栏的内容称为关键字(keyword)。符号表的功能:(1)收集符号属性(2)上下文语义的合法性检查的依据:检查标识符属性在上下文中的一致性和合法性。(3)作为目标代码生成阶段地址分配的依据符号的主要属性及作用:1.符号名2.符号的类型(整型、实型、字符串型等))3.符号的存储

6、类别(公共、私有)4.符号的作用域及可视性(全局、局部)5.符号变量的存储分配信息(静态存储区、动态存储区)存储分配方案策略:静态存储分配;动态存储分配:栈式、堆式。静态存储分配1、基本策略在编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项的单元地址。2、适用的分配对象:子程序的目标代码段;全局数据目标(全局变量)3、静态存储分配的要求:不允许递归调用,不含有可变数组。FORTRAN程序是段结构,不允许递归,数据名大小、性质固定。是典型的静态分配动态存储分配1、如果一个程序设计语言允许递归过程、可变数组或允许用户自由申请和释放空间,那么,就需要采用动态存储管理技术。2、两种动态

7、存储分配方式:栈式,堆式栈式动态存储分配分配策略:将整个程序的数据空间设计为一个栈。【例】在具有递归结构的语言程序中,每当调用一个过程时,它所需的数据空间就分配在栈顶,每当过程工作结束时就释放这部分空间。过程所需的数据空间包括两部分一部分是生存期在本过程这次活动中的数据对象。如局部变量、参数单元、临时变量等;另一部分则是用以管理过程活动的记录信息(连接数据)。活动记录(AR)一个过程的一次执行所需要的信息使用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。