版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 语义分析和中间代码生成,7.1 中间语言 7.2 说明语句 7.3 赋值语句的翻译 7.4 布尔表达式的翻译 7.5 控制语句的翻译 7.6 过程调用的处理 7.7 类型检查,7.4 布尔表达式的翻译,布尔表达式文法G EE1 or E2 | E1 and E2 | not E1 | ( E1 ) | id1 relop id2 | true | false | id3 布尔运算符: or 、and 、 not 关系运算符: relop:、和 布尔常量: true和false 布尔变量: id3,计算布尔表达式的值通常有两种办法,1. 如同计算算术表达式,一步不差地从表达式各部分的值计
2、算出整个表达式的值。,1 or (not 0 and 0) or 0 = 1 or (1 and 0) or 0 = 1 or 0 or 0 = 1 or 0 = 1,2. 采取某种优化措施, 只计算部分表达式,把A or B解释成 if A then true else B,把A and B解释成 if A then B else false,把not A解释成 if A then false else true,布尔表达式的两个作用,计算逻辑值 1 or(not 0 and 0)or 0 用做改变控制流语句中的条件表达式 if-then if-then-else while-do 以上对应
3、两种不同的翻译方案,7.4.1 数值表示法,从左到右按类似算术表达式的求值方法来计算 例如,对于布尔表达式: a or b and not c 将被翻译成如下三地址序列: T1 := not c T2 := b and T1 T3 := a or T2,一个形如 ab 的关系表达式可等价地写成 if ab then 1 else 0, 并可将它翻译成如下三地址语句序列 (我们假定语句序号从100开始),(100) if ab goto 103 (101) T:=0 (102) goto 104 (103) T:= 1 (104),T 临时变量,存放布尔表达式ab的值,例7.2 翻译布尔表达式
4、ab or cd and ef,7.4.2 作为条件控制的布尔式翻译,出现在条件语句 if E then S1 else S2 中的布尔表达式E, 它的作用仅在于控制对S1和S2的选择。 无须保留E的值。,表7.15 if then else 语句 的代码结构,to E.true,to E.false,E.false:,E.true:,S.next:,“真”出口,“假”出口,例7.3 考虑表达式 : ab or cd and ef,假定整个表达式的真假出口已分别置为Ltrue和Lfalse,则按生成如下的代码:,if ab goto Ltrue goto L1 L1 : if cd goto
5、L2 goto Lfalse L2 : if ef goto Ltrue goto Lfalse,if ab or cd and ef then S1 else S2 的四元式序列,(1) ifabgoto(7) / E.true (2) goto(3) (3) ifcdgoto(5) (4) goto (p+1) / E.false (5) ifefgoto(7)/ E.true (6) goto (p+1) / E.false (7) (关于S1的四元式) (p) goto (q) (p+1) (关于S2的四元式) (q),回填 : (1)和(5)的转移地址为(7), 它是在整个布尔表达式的四元式序列生成之后才回填的地址。,if AB goto 102 goto 106 if CD goto 104 goto 106 t:= yz x:= t ,if AB and CD then x:=y+z,100if AB goto 102 101goto107 102ifCD got
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年兰州航空职业技术学院单招《物理》考前冲刺练习含完整答案详解【夺冠】
- 2024-2025学年反射疗法师3级题库检测试题打印附完整答案详解【夺冠】
- 2024-2025学年度粮油食品检验人员模拟试题往年题考附答案详解
- 2024-2025学年度化验员考试黑钻押题附参考答案详解(B卷)
- 2024-2025学年度机械设备制造修理人员通关考试题库含答案详解(研优卷)
- 2024-2025学年医师定期考核考试彩蛋押题附答案详解【轻巧夺冠】
- 2024-2025学年度上海立达学院单招《物理》检测卷含答案详解AB卷
- 2024-2025学年度反射疗法师大赛理论模拟试题含完整答案详解(网校专用)
- 2024-2025学年全国统考教师资格考试《教育教学知识与能力(小学)》经典例题汇编附答案详解
- 2024-2025学年度刑法期末考试模考模拟试题含答案详解【达标题】
- 二手车交易合伙协议
- 2024年江苏信息职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 板材行业销售渠道分析
- 2024地面用晶体硅光伏组件环境适应性测试要求第1部分:一般气候条件
- 合同税率变更补充协议
- 教科版四年级下册科学全册教案
- 苏教版五年级下册数学 列方程解决两步实际问题 教案(教学设计)
- 人教版《体育与健康》水平二 跳跃单元作业设计
- 《煤气安全作业》培训教材
- 函数的零点与方程的解(说课课件)
- GB/T 29061-2012建筑玻璃用功能膜
评论
0/150
提交评论