教材中的语法制导翻译将表达式 E → id1<id2 翻译成一对三地址码
if id1<id2 goto –
goto –
现将上述三地址码对用三地址码 “if id1 ≥ id2 goto –” 代替,当
E 为真时执行后继代码。请修改教材中的语法制导翻译,使之产生
这样性质的三地址码序列。
解:
与原来翻译方案的根本区别在于:表达式为真时并不生成三地址码,因此表达式的真出口默认为下一条三地址码。
如果真出口不是下一条三地址码,则仍需要生成两条 goto 语句。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题