第八章语法制导翻译和中间代码生成讲述.ppt

第八章语法制导翻译和中间代码生成讲述.ppt

8.5.2 控制语句中布尔表达式的翻译 布尔表达式E有两个出口:真出口和假出口 E.true是E为‘真’时控制流转向的标号 E.false是E为‘假’时控制流转向的标号 当E为a rop b(E-a rop b)作为条件转移时,仅把E翻译成两条代码:条件转和无条件转 代码为 if a rop b goto E.true goto E.false 8.5.2 控制语句中布尔表达式的翻译 对于E为E1 or E2的形式 若E1为真,则可知道E为真 E1的真出口与E的真出口一样 若E1为假,则必须计算E2 E1的假出口是E2的第一个四元式标号 E2的真出口和假出口与E的真出口和假出口一样 对于E为E1and E2的形式 若E1为假,则可知道E为假 E1的假出口与E的假出口一样 若E1为真,则必须计算E2 E1的真出口是E2的第一个四元式标号 E2的真出口和假出口与E的真出口和假出口一样 8.5.2 控制语句中布尔表达式的翻译 例如:布尔表达式ab or cd and ef的翻译 (1) if ab goto E.true (2) goto 3 (3) if cd goto 5 (4) goto E.false (5) if ef goto E.true (6) goto E.false 注意:E.true与E.false的值有时不能在产生四元式的同时知道 有时,四元式转移地址无法立即知

文档评论(0)

1亿VIP精品文档

相关文档