- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理7.4–布尔表达式的翻译
第七章 语义分析和中间代码生成 7.1 中间语言 7.2 说明语句 7.3 赋值语句的翻译 7.4 布尔表达式的翻译 7.5 控制语句的翻译 7.6 过程调用的处理 7.7 类型检查 7.4 布尔表达式的翻译 布尔表达式文法G E?E1 or E2 | E1 and E2 | not E1 | ( E1 ) | id1 relop id2 | true | false | id3 布尔运算符: or 、and 、 not 关系运算符: relop:<、≤、=、≠、>和≥ 布尔常量: true和false 布尔变量: id3 计算布尔表达式的值通常有两种办法 1. 如同计算算术表达式,一步不差地从表达式各部分的值计算出整个表达式的值。 2. 采取某种优化措施, 只计算部分表达式 把A or B解释成 if A then true else B 布尔表达式的两个作用 计算逻辑值 1 or(not 0 and 0)or 0 用做改变控制流语句中的条件表达式 if-then if-then-else while-do 以上对应两种不同的翻译方案 7.4.1 数值表示法 从左到右按类似算术表达式的求值方法来计算 例如,对于布尔表达式: a or b and not c 将被翻译成如下三地址序列: T1 := not c T2 := b and T1 T3 := a or T2 一个形如 a<b 的关系表达式可等价地写成 if a<b then 1 else 0, 并可将它翻译成如下三地址语句序列 (我们假定语句序号从100开始) 7.4.2 作为条件控制的布尔式翻译 出现在条件语句 if E then S1 else S2 中的布尔表达式E, 它的作用仅在于控制对S1和S2的选择。 无须保留E的值。 例7.3 考虑表达式 : a<b or c<d and e<f 假定整个表达式的真假出口已分别置为Ltrue和Lfalse,则按生成如下的代码: if a<b or c<d and e>f then S1 else S2 的四元式序列 (1) if a<b goto (7) // E.true (2) goto (3) (3) if c<d goto (5) (4) goto (p+1) // E.false (5) if e>f goto (7) // E.true (6) goto (p+1) // E.false (7) (关于S1的四元式) … (p) goto (q) (p+1) (关于S2的四元式) … (q) 100 if A<B goto 102 101 goto 107 102 if C<D goto 104 103 goto 100 104 T∶=Y+Z 105 X∶=T 106 goto 100 107 … * * * 1 or (not 0 and 0) or 0 = 1 or (1 and 0) or 0 = 1 or 0 or 0 = 1 or 0 = 1 把A and B解释成 if A then B else false 把not A解释成 if A then false else true (100) if a<b goto 103 (101) T:=0 (102) goto 104 (103) T:= 1 (104) T - 临时变量,存放布尔表达式a<b的值 例7.2 翻译布尔表达式 ab or cd and ef 108: if ef goto 111 109: T3 =0 110: goto 112 111: T3 =1 112: T4 = T2 and T3 113: T5 = T1 or T4 100: if ab goto 103 101: T1 =0 102: goto 104 103: T1 =1 104: if cd goto 107 105: T2 =0 106: goto 108 107: T2 =1 表7.15 if – then – else 语句 的代码结构 S2.code … Goto S.next S1.code E.Code to E.true to E.false E.false: E.true: S.next: “真”出口 “假”出口 if a<b goto Ltrue goto L1 L1 : if c<d goto
您可能关注的文档
- 线性代数5–6用配方法化二次型为标准型.ppt
- 线性代数第1章二节.ppt
- 纺织外贸英语nuit2–fibers纤维.ppt
- 线性规划及其应用3–线性规划求解方法.ppt
- 纽曼平板电脑NP800产品讲训.ppt
- 线性规划第1轮专题复习.ppt
- 线形动物及环节动物12345.ppt
- 练习册上32–33习题.ppt
- 线性系统的时域分析法2阶系统.ppt
- (人教新课标)五年级语文课件将相和.ppt
- 2023年甘肃省张掖市民乐县三堡镇招聘社区工作者真题及完整答案详解1套.docx
- 2023年甘肃省张掖市民乐县丰乐乡招聘社区工作者真题及参考答案详解.docx
- 机械设备-行业周报:美越达成贸易协议,关注美国关税政策变化下出口链走向.docx
- 2023年甘肃省张掖市山丹县陈户乡招聘社区工作者真题及答案详解一套.docx
- 皮肤性病学多媒体教材总论.ppt
- 2023年甘肃省张掖市山丹县陈户乡招聘社区工作者真题及答案详解一套.docx
- 2023年甘肃省张掖市山丹县陈户乡招聘社区工作者真题带答案详解.docx
- 2023年甘肃省张掖市山丹县陈户乡招聘社区工作者真题及参考答案详解1套.docx
- 2023年甘肃省张掖市山丹县陈户乡招聘社区工作者真题及完整答案详解1套.docx
- 2023年甘肃省张掖市山丹县老军乡招聘社区工作者真题附答案详解.docx
最近下载
- 电力调度数据网络接入技术规范及网络拓扑图.doc VIP
- ZZGA高频开关整流器使用说明书.doc
- 危重患者院内转运PPT.pptx VIP
- 匀变速直线运动的速度与时间的关系课件 2024-2025学年高一上学期物理人教版(2019)必修第一册.pptx VIP
- 《科学发展观》课件.ppt VIP
- 匀变速直线运动的位移与时间的关系 课件 -2024-2025学年高一上学期物理人教版(2019)必修第一册.pptx VIP
- 2022年西安市灞桥区事业单位考试真题.docx VIP
- 【课件】匀变速直线运动的位移与时间的关系+课件高一上学期物理人教版(2019)必修第一册.pptx VIP
- 2024西安市灞桥区事业单位考试笔试题库及答案.docx VIP
- 福建专升本 “三个代表” 重要思想(思维导图).pdf VIP
文档评论(0)