- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理-算术表达式赋值句
上次课程内容回顾 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语义规则(续1) 结束(2010年5月11日) 上次课程内容回顾 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) 结束(2010年5月13日) 属性 .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; E2.false:= E.false; E2.true:=E.true; E.code := E1.code||emit(E1.true:)||E2.code;} (3) |not E1 { E1.false:=E.true; E1.true:=E.false;} (4) |(E1) { E1.false:=E.false; E1.true:=E.true;} 下下页 语义规则: |id1 relop id2 { E.code := emit (ifid1.place relop.op id2.placegotoE.true) || emit(goto E.false); } (6) |id { E.code := emit(if id.place goto E.true) || emit(goto E.false);} (7) |true { E.code := emit(goto E.true);} (8) |false { E.code := emit(goto E.false);} 上一页 例4.20:再考虑布尔表达式ab or cd and ef的短路计算: if ab goto LT goto L2 L2: if cd goto L1 goto LF L1: if ef goto LT goto LF drive me crazy!! 分析树: 注释分析树: 三地址码序列: 上一页 * 参数传递(续) 引用调用、复写-恢复、名字调用 嵌套定义的过程中信息的存储 作用域信息的保存 过程的作用域(过程与程序块的区别) 过程嵌套的层次 符号表的组织
您可能关注的文档
- 绪论—珍惜大学生活 开拓新及境界.ppt
- 绪论及第一章人体及基本结构.ppt
- 维护和保养二次包络减速机以及不同及运行条件.ppt
- 维生素及概念及特性.ppt
- 综合写作: 批复及写作.ppt
- 综合利用水利工程及投资费用分摊.ppt
- 综合布线系统工程及测试.ppt
- 综合性学习 探索月球及奥秘.ppt
- 综合技能水利及水文训练.ppt
- 综合统计方法在长江上游流域短期强降水面雨量预报中及应用.ppt
- 2025年济南四建集团有限责任公司招聘笔试备考试题及答案详解(历年真题).docx
- 2025山东济南齐鲁财金投资集团有限公司招聘笔试备考题库及答案详解(网校专用).docx
- 2025通辽霍林郭勒市电力投资有限责任公司招聘10人笔试备考题库含答案详解(轻巧夺冠).docx
- 2025年江西省交通投资集团有限责任公司社会招聘43人笔试备考题库附答案详解(培优).docx
- 2025年济南四建集团有限责任公司校园招聘笔试备考题库及答案详解(全优).docx
- 2025贵州磷化(集团)有限责任公司招聘139人笔试备考题库附答案详解(a卷).docx
- 2025贵州省水利投资(集团)有限责任公司招聘84人笔试备考题库及一套完整答案详解.docx
- 2025年新疆投资发展集团有限责任公司人员招聘笔试备考题库及答案详解(夺冠系列).docx
- 2025年南宁威宁投资集团有限责任公司校园招聘笔试备考题库及答案详解(全优).docx
- 2025年济南建设设备安装有限责任公司招聘笔试备考题库有完整答案详解.docx
文档评论(0)