ImageVerifierCode 换一换
格式:DOC , 页数:2 ,大小:21KB ,
资源ID:7376661      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7376661.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理概念_名词解释.doc)为本站会员(j35w19)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

编译原理概念_名词解释.doc

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

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

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

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

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

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

7、语言允许递归过程、可变数组或允许用户自由申请和释放空间,那么,就需要采用动态存储管理技术。2、两种动态存储分配方式:栈式,堆式栈式动态存储分配分配策略:将整个程序的数据空间设计为一个栈。【例】在具有递归结构的语言程序中,每当调用一个过程时,它所需的数据空间就分配在栈顶,每当过程工作结束时就释放这部分空间。过程所需的数据空间包括两部分一部分是生存期在本过程这次活动中的数据对象。如局部变量、参数单元、临时变量等;另一部分则是用以管理过程活动的记录信息(连接数据) 。活动记录(AR)一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区 (块) 叫做一个活动记录。构成1、临时工作单元;2、

8、局部变量;3、机器状态信息;4、存取链;5、控制链;6、实参;7、返回地址什么是代码优化所谓优化,就是对代码进行等价变换,使得变换后的代码运行结果与变换前代码运行结果相同,而运行速度加快或占用存储空间减少。优化原则:等价原则:经过优化后不应改变程序运行的结果。 有效原则:使优化后所产生的目标代码运行时间较短,占用的存储空间较小。 合算原则:以尽可能低的代价取得较好的优化效果。常见的优化技术(1) 删除多余运算(删除公共子表达式 ) (2) 代码外提 +删除归纳变量 + (3)强度削弱; (4)变换循环控制条件 (5)合并已知量与复写传播 (6)删除无用赋值基本块定义程序中只有一个入口和一个出口的一段顺序执行的语句序列,称为程序的一个基本块。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报