编译原理张晶版第七章语法制导翻译和中间代码生成素材.ppt

编译原理张晶版第七章语法制导翻译和中间代码生成素材.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程名称 void Binky(class Cow betsy) { betsy.InitCow(5); } _Binky: BeginFuncWithParams betsy; Var _t2; _t2 = 5; Var _t3; _t3 = *(betsy); Var _t4; _t4 = *(_t3 + 4); ACall _t4(betsy, _t2); EndFunc; 第七章 语法制导翻译和中间代码生成(126) 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 课程名称 (2) E?E1+E2 {E.place:= newtemp; emit(E.place“:=” E1.place“+”E2.place)} (3) E? - E1 { E.place:=newtemp; emit(E.place“:=”“uminus” E1.place)} (4) E?( E1) { E.place:= E1.place} (5) E?id {E.place:=newtemp; P:=lookup(id.name); if P?nil then E.place:=P else error} 第七章 语法制导翻译和中间代码生成(94) 课程名称 简单说明句的翻译-翻译是指在符号表中登录名字和性质。 最简单的说明句的语法: D→integer〈namelist〉|real〈namelist〉 〈namelist〉→〈namelist〉,id|id 用自下而上翻译 文法改写: D→D1,id |integer id | real id 第七章 语法制导翻译和中间代码生成(95) 课程名称 (1)D→integer id{enter(id,int);D.att:=int} (2)D→real id{enter(id,real);D.att:=real} (3)D→D1 ,id{enter(id,D1.att); D.att:=D1.att} 不改写文法,用自下而上翻译--请你自己设计 用自上而下翻译-------------------请你自己设计 ? 第七章 语法制导翻译和中间代码生成(96) 课程名称 如 i f B t h e n S 1 e l s e S 2 B 的 代 码 条 件 假转 S 1 的 代 码 转 移 S 2 的 代 码 B S 1 S 2 N Y 控制语句的翻译-结构的翻译 第七章 语法制导翻译和中间代码生成(97) 课程名称 E.false 控制语句中布尔表达式的翻译 控制语句 S ? if E then S 1 else S 2 E 的代码 E .true E .true: S 1 的代码 goto out E.false: S 2 的代码 out: 第七章 语法制导翻译和中间代码生成(98) 课程名称 . 把条件转移的布尔表达式 E 翻译成仅含 条件真 转 和 无条件 转 的四元式 E : a rop b ? if a rop b goto E.true goto E.false 如 : ab or cd and ef 可 翻译成如下四元式: (1 ) if ab goto E.true (2) goto (3) (

文档评论(0)

502992 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档