编译原理7.4-布尔表达式的翻译

编译原理7.4-布尔表达式的翻译

ID:42329381

大小:208.51 KB

页数:13页

时间:2019-09-12

编译原理7.4-布尔表达式的翻译_第1页
编译原理7.4-布尔表达式的翻译_第2页
编译原理7.4-布尔表达式的翻译_第3页
编译原理7.4-布尔表达式的翻译_第4页
编译原理7.4-布尔表达式的翻译_第5页
资源描述:

《编译原理7.4-布尔表达式的翻译》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章语义分析和中间代码生成7.1中间语言7.2说明语句7.3赋值语句的翻译7.4布尔表达式的翻译7.5控制语句的翻译7.6过程调用的处理7.7类型检查7.4布尔表达式的翻译布尔表达式文法GEE1orE2

2、E1andE2

3、notE1

4、(E1)

5、id1relopid2

6、true

7、false

8、id3布尔运算符:or、and、not关系运算符:relop:<、≤、=、≠、>和≥布尔常量:true和false布尔变量:id3计算布尔表达式的值通常有两种办法1.如同计算算术表达式,一步不差地从表达式各部分的值计算出整个表达式的值。1or(no

9、t0and0)or0=1or(1and0)or0=1or0or0=1or0=12.采取某种优化措施,只计算部分表达式把AorB解释成ifAthentrueelseB把AandB解释成ifAthenBelsefalse把notA解释成ifAthenfalseelsetrue布尔表达式的两个作用计算逻辑值1or(not0and0)or0用做改变控制流语句中的条件表达式if-thenif-then-elsewhile-do以上对应两种不同的翻译方案7.4.1数值表示法从左到右按类似算术表达式的求值方法来计算例如,对于布尔表达式:aorban

10、dnotc将被翻译成如下三地址序列:T1:=notcT2:=bandT1T3:=aorT2一个形如a<b的关系表达式可等价地写成ifa<bthen1else0,并可将它翻译成如下三地址语句序列(我们假定语句序号从100开始)(100)ifa<bgoto103(101)T:=0(102)goto104(103)T:=1(104)T-临时变量,存放布尔表达式a<b的值例7.2翻译布尔表达式a

11、:T2=0106:goto108107:T2=1108:ife

12、”出口例7.3考虑表达式:a<borc<dande<f假定整个表达式的真假出口已分别置为Ltrue和Lfalse,则按生成如下的代码:ifa<bgotoLtruegotoL1L1:ifc<dgotoL2gotoLfalseL2:ife<fgotoLtruegotoLfalseifa<borc<dande>fthenS1elseS2的四元式序列(1)ifa<bgoto(7)//E.true(2)goto(3)(3)ifc<dgoto(5)(4)goto(p+1)//E.false(5)ife>fgoto(7)//E.true(6)got

13、o(p+1)//E.false(7)(关于S1的四元式) …(p)goto(q)(p+1)(关于S2的四元式)…(q)回填:(1)和(5)的转移地址为(7),它是在整个布尔表达式的四元式序列生成之后才回填的地址。ifA

14、if(C<D)thenX:=Y+Z

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。