编译原理第七章 主讲教师雷向东.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第七章 主讲教师雷向东

(1)S→if E then M1 S1 N else M2 S2 {backpatch(E.truelist, M1.quade); backpatch(E.falseliat,M2.quade); S.next:=merge(S1.nextlist, N.nextlist, S2.nextlist)} (2)N→ε {N.nextlist:=makelist(nextquade); emit(‘j, _, _, 0’)} (3)M→ε {M.quade:=nextquade} (4)S→if E then M S1; {backpatch(E.truelist, M.quade); S.nextlist:=merge(E.falselist, S1.nextlist)} (5) S→while M1 E do M2 S1 {backpatch(S1.nextlist, M1.quade); backpatch(E.truelist, M2.quade); S.nextlist:=E.falselist emit(‘j, _, _,M1.quade)} 现在,我们来构造一个翻译模式,使之能在自底向上的分析过程中生成布尔表达式的四元式代码。在文法中插入了标记非终结符M,以便在适当的时候执行一个语义动作,记下下一个将要产生的四元式标码。使用的文法如下: (1) E→E1 or M E2 (2) E→E1 and M E2 (3) E→not E1 (4) E→(E1) (5) E→id1 relop id2 (6) E→true (7) E→false (8) M→ε M E2 or E1 E.falselist E1.truelist E2.truelist E or E语句的语义动作 E.truelist E2.falselist E.falseist M E2 and E1 E.truelist E1.falselist E2.falselist E and M 语句的语义动作 E.falselist E2.truelist E.truelist 布尔表达式的翻译模式如下 (1) E→E1 or M E2 {backpatch(E1.falselist, M.quade); E.truelist:=merge(E1.truelist, E2.truelist); E.falselist:=E2.falselist} (2) E→E1 and M E2 {backpatch(E1.truelist, M.quade); E.truelist:=E2.truelist;

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档