编译原理复习11.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理复习11

编译原理复习 * * 6、 LR分析器的构造方法---总控程序框图 编译原理复习 * * 例4.8:文法G[S]: S→(S) | a 拓广: (0)S′→S (1)S→(S) (2)S→a 编译原理复习 * * 编译原理复习 * * 例4.9:对下列文法: (0)S′→S (1)S→bRST (2)S→bR (3)R→dSa (4)R→e (5)T→fRa (6)T→f ①求各非终结符的First和Follow集合。 ②构造该文法的SLR(1)分析表。 解: First Follow S′ b # S b a,f,# R d,e a,b,f,# T f a,f,# 编译原理复习 * * 编译原理复习 * * ACTION GOTO a b d e f # S R T 0 S3 1 1 acc 2 r2 S3 r2 r2 5 3 S6 S4 2 4 r4 r4 r4 r4 5 S10 9 6 S3 7 7 S8 8 r3 r3 r3 r3 9 r1 r1 r1 10 r6 S6 S4 r6 r6 11 11 S12 12 r5 r5 r5 编译原理复习 * * 例4.10 有文法G[A] : A→aABe | Ba B→dB | ε 该文法是否是SLR(1)文法?证明之。 解:将文法拓广为G[S′] (0)S′→A (1)A→aABe (2) A→Ba (3)B→dB (4)B→ε 该文法的LR(0)项目有: S′→. A S′→A . A→. aABe A→a .ABe A→aA .Be A→aAB .e A→aABe. A→ .Ba A→B .a A→Ba. B→ .dB B→d .B B→dB. B→ . 编译原理复习 * * Follow(B)={a,e} ∴不是SLR(1)文法 S′→A A→aABe A→Ba B→dB B→ε 无法用SLR(1)解决冲突 无法用SLR(1)解决冲突 可以用SLR(1)解决冲突 可以用SLR(1)解决冲突 编译原理复习 * * 例4.11:设有文法G[E]: (1)S→A (2)S→B (3)A→aAb (4)A→c (5)B→aBb (6)B→d 编译原理复习 * * 例4.12 编译原理复习 * * 编译原理复习 * * 编译原理复习 * * 编译原理复习 * * 五、语义分析和中间代码产生 1、语法制导翻译法的基本思想:对文法的每一条产生式,设计语义子程序。在语法分析的过程中,当使用一条产生式推导或归约时,调用该语义子程序,完成预定的翻译工作。 2、中间代码:逆波兰式、四元式 作用: ①有利于目标代码优化 ②有利于目标代码移植 ③使各阶段的开发复杂性降低, 有利于编译程序的开发。 编译原理复习 * * 逆波兰式(后缀式):每一运算符都置于其运算对象之后。(无括号表) 中缀表示 后缀表示 A*B AB* A+B*C ABC*+ (A+B)*(C+D) AB+CD+* (a==0b3)||(ex!=y) a0==b3exy!=|| ac∧b==d acbd==∧ 编译原理复习 * * 例1:算术表达式求值的属性文法。 规则式 语义规则 1.L→E print(E.val) 2.E→E1+T E.val:=E1.val+T.val 3.E→T E.val:=T.val 4.T→T1*F T.val:=T1.val*F.val 5.T→F T.val:=F.val 6.F→(E) F.val:=E.val 7.F→digit F.val:=digit.lexval 与规则式关联的每一个语义规则的左部符号E, T, F等的属性值的计算由右部非终结符决定,这种属性称为综合属性。 编译原理复习 * * L E.val=19 F.val=5 + T.val=4 T.val=15 F.val=4 digit.lexval=4 E.val=15 T.val=3 digit.lexval=5 F.val=3 digit.lexval=3 * n 求:3*5+4 编译原理复习 * * 例2 (*, B, C, T1) (2) (+, A, T1, T2) (3) (:=, T2, , X) 编译原理复习 * * 期末考试 一、判断题(每小题2分,共10分) 二、选择题(每小题2分,共10分) 三、应用题(每小题10分,共50分) 四、(15分) 五、(15分) 编译原理复习 编译原理复习 编译原理复习 * * 编译原理复习 * * 编译原理复习 一、引论 1、编译原理”的目的和任务 编译原理是计算

文档评论(0)

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

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

1亿VIP精品文档

相关文档