编译原理7.4-布尔表达式的翻译.ppt
《编译原理7.4-布尔表达式的翻译.ppt》由会员分享,可在线阅读,更多相关《编译原理7.4-布尔表达式的翻译.ppt(13页珍藏版)》请在装配图网上搜索。
第七章语义分析和中间代码生成,7.1中间语言7.2说明语句7.3赋值语句的翻译7.4布尔表达式的翻译7.5控制语句的翻译7.6过程调用的处理7.7类型检查,7.4布尔表达式的翻译,布尔表达式文法GEE1orE2|E1andE2|notE1|(E1)|id1relopid2|true|false|id3布尔运算符:or、and、not关系运算符:relop:、和布尔常量:true和false布尔变量:id3,计算布尔表达式的值通常有两种办法,1.如同计算算术表达式,一步不差地从表达式各部分的值计算出整个表达式的值。,1or(not0and0)or0=1or(1and0)or0=1or0or0=1or0=1,2.采取某种优化措施,只计算部分表达式,把AorB解释成ifAthentrueelseB,把AandB解释成ifAthenBelsefalse,把notA解释成ifAthenfalseelsetrue,布尔表达式的两个作用,计算逻辑值1or(not0and0)or0用做改变控制流语句中的条件表达式if-thenif-then-elsewhile-do以上对应两种不同的翻译方案,7.4.1数值表示法,从左到右按类似算术表达式的求值方法来计算例如,对于布尔表达式:aorbandnotc将被翻译成如下三地址序列:T1:=notcT2:=bandT1T3:=aorT2,一个形如ab的关系表达式可等价地写成ifabthen1else0,并可将它翻译成如下三地址语句序列(我们假定语句序号从100开始),(100)ifabgoto103(101)T:=0(102)goto104(103)T:=1(104),T临时变量,存放布尔表达式ab的值,例7.2翻译布尔表达式aborcdandef,7.4.2作为条件控制的布尔式翻译,出现在条件语句ifEthenS1elseS2中的布尔表达式E,它的作用仅在于控制对S1和S2的选择。无须保留E的值。,表7.15ifthenelse语句的代码结构,toE.true,toE.false,E.false:,E.true:,S.next:,“真”出口,“假”出口,例7.3考虑表达式:aborcdandef,假定整个表达式的真假出口已分别置为Ltrue和Lfalse,则按生成如下的代码:,ifabgotoLtruegotoL1L1:ifcdgotoL2gotoLfalseL2:ifefgotoLtruegotoLfalse,ifaborcdandefthenS1elseS2的四元式序列,(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),它是在整个布尔表达式的四元式序列生成之后才回填的地址。,ifABgoto102goto106ifCDgoto104goto106t:=yzx:=t,ifABandCDthenx:=y+z,100ifABgoto102101goto107102ifCDgoto104103goto100104T=Y+Z105X=T106goto100107,while(AB)doif(CD)thenX:=Y+Z,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 7.4 布尔 表达式 翻译
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文