- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第四章 语法制导翻译生成中间代码3
上次课程内容回顾 4.5 简单算术表达式与赋值句 4.5.1 简单算术表达式的语法制导翻译 4.5.2 变量的(内部)类型转换 4.5.2 变量的(内部)类型转换(续1) 4.5.2 变量的(内部)类型转换(续2) 4.5.2 变量的(内部)类型转换(续3) 4.6 数组元素的引用 确定映射方式的两种方法 4.6.1 数组元素的地址计算 一维数组元素的地址计算: n维数组元素的地址计算 n维数组元素的地址计算(续1) 4.6.2 数组元素引用的语法制导翻译 4.6.2 (续) 2 属性和函数 3语义规则 上次课程内容回顾 3语义规则 3语义规则(续1) 4 分析举例 数组元素引用的语法制导翻译 主要分析步骤: 4 分析举例(续1) 4.7 布尔表达式4.7.1 布尔表达式的作用与结构 布尔运算的优先级与结合性 4.7.2 布尔表达式的计算方法 1 数值表示的直接计算 2 逻辑表示的短路计算 3 短路计算的必要性 4.7.3 数值表示与直接计算的语法制导翻译 4.7.3 数值表示与直接计算的语法制导翻译(续1) 4.7.3 数值表示与直接计算的语法制导翻译(续2) 4.7.4 短路计算的语法制导定义 4.7.4 短路计算的语法制导定义(续1) 语义规则: 4.7.4 短路计算的语法制导定义(续2) 4.7.4 短路计算的语法制导定义(续3) 4.7.4 短路计算的语法制导定义(续4) 4.7.5 拉链与回填 翻译方案需要解决的两个问题: 上次课程内容 4.7.5 拉链与回填 翻译方案需要解决的两个问题: 短路计算的翻译方案 例4.21:三地址码: 属性与语义规则: 属性与语义规则(续1) 再考虑布尔表达式ab or cd and ef 再考虑布尔表达式ab or cd and ef(续) 4.8 控制语句 控制语句基于的文法: 4.8.1 标号与无条件转移 4.8.1 标号与无条件转移(续1) 4.8.1 标号与无条件转移(续2) 4.8.1 标号与无条件转移(续3) 4.8.2 条件转移1 三地址码序列和语法制导定义 1 三地址码序列和语法制导定义(续1) 1 三地址码序列和语法制导定义(续2) 上次课程内容 4.8.2 条件转移1 三地址码序列和语法制导定义 1 三地址码序列和语法制导定义(续1) 1 三地址码序列和语法制导定义(续2) 2 条件转移的控制流与翻译方案 2 条件转移的控制流与翻译方案(续1) 2 条件转移的控制流与翻译方案(续2) 2 条件转移的控制流与翻译方案(续3) 4.10 本章小结 4.10 本章小结(续1) 4.10 本章小结(续2) 4.10 本章小结(续3) 3 符号表的组织 符号表的条目与信息的存储-直接存储与间接存储; 作用域信息的保存-线性表与散列表,表上的操作,散列函数的计算。 4 声明语句的翻译 定义与声明:类型定义与变量声明,过程定义与过程声明 变量声明:符号表信息的填写; 过程声明: 左值与右值; 参数传递:参数传递的不同形式,各种参数传递形式的处理方式; 名字的作用域:静态作用域与最近嵌套原则; 声明中作用域信息的保存。 属性 .true:表达式的真出口,它指向表达式为真时的转向; 属性 .false:表达式的假出口,它指向表达式为假时的转向; 函数 newlable:与newtemp相似,但它产生的是一个标号而不是一个临时变量。 三地址码序列与.true、.false的关系: 考虑布尔表达式E→E1 or E2,它应该有下述代码序列: E1.code E1.false: E2.code 根据布尔表达式短路计算的逻辑(4.7),上述表达式真、假出口之间存在下述关系: E1.true = E2.true = E.true 和 E2.false = E.false 即首先生成计算表达式E1的中间代码,然后在计算表达式E2的中间代码之前设置一个标号E1.false,使得当表达式E1为假时,转而计算表达式E2。 (1)E→E1 or E2 { E1.true:= E.true; E1.false:=newlabel; E2.true:= E.true; E2.false:=E.false; E.code := E1.code||emit(E1.false :)||E2.code;} (2) |E1 and E2 { E1.false:= E.false; E1.true:=newlabel;
您可能关注的文档
最近下载
- 《产品质量鉴定程序规范 总则》.pdf VIP
- 沪科版九年级物理公式复习.pdf VIP
- AQ∕T 2063-2018 金属非金属露天矿山高陡边坡安全监测技术规范(可复制版).pdf
- 高速公路无人机自动巡检可行性探究.pdf VIP
- CR4012022机器人CR认证可靠性等级认证实施细则.pdf
- 再生水管道阀门选型与管理.doc VIP
- 某公司办公区生活区消防检查记录表.docx VIP
- 人教版高一数学必修一练习题-高一数学人教版必修一《集合》练习题3.doc VIP
- 智慧方案光储充一体化系统解决方案.pptx VIP
- IPC-TM-650测试方法手册CN2020必威体育精装版(104个方法)扫描版.pdf VIP
文档评论(0)