网站大量收购闲置独家精品文档,联系QQ:2885784924

南京师范大学计算机科学与技术学院编译原理课件第二章 文法与语言(四).ppt

南京师范大学计算机科学与技术学院编译原理课件第二章 文法与语言(四).ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2005/03/14 南京师范大学计算机系 杨明 南京师范大学 杨明 教授 2.4 文法左递归的消除 左递归?右递归:改写规则的办法 例2.4.1 G[E]: E::=E+T|T?E::=T+E|T 例2.4.2 G[E]: E::=E+T|T T::=T*F|F F::=(E)|i ?E::=TE1 E1::=+TE1| T::=FT1 T1::=*FT1| F::=(E)|i 2.4 文法左递归的消除 2.左递归?右递归:扩充的BNF表示法 运用的规则: 1)U::=ux|uy|…|uz?U::=u(x|…|z) 2)U::=x|y|…|z|Uu?U::=(x|…|z){u} 例2.4.3 G[E]: E::=E+T|T?E::=T{+T} 注:情况1和2仅消除规则的左递归。 ??如何消除文法的左递归 2.4 文法左递归的消除 注:不是任何文法的左递归均可消除。 必要条件:文法中不包含U=+U,U::= 算法: (1)将文法G的所有非终结符号以某种顺序排列成U1,U2,…,Un; (2)for(j=1;j=n;j=j+1) { for(k=1;k=j-1;k=k+1) {将形如Uj::=Ukr的规则改写成:Uj::=xk1r|xk2r|…|xklr Uk::= xk1|xk2|…|xkl为的所有规则; } 消除关于Uj的规则左递归 } (3)进一步化简(2)得到的文法,即删除那些无用的规则。 2.4 文法左递归的消除实例说明 例2.4.4 G[S]: S::=Sa|Tbc|Td T::=Se|gh 消除其左递归的过程如下: 1. U1=S,U2=T 2.1 j=1,k=1,消除规则的U1左递归,即 S::=(Tbc|Td)S1 S1::=aS1| 2.2 j=2,k=1,T::=Se呈U2=U1r型规则,则 T::=(Tbc|Td)S1e|gh=T(bc|d) S1e|gh ?T::=ghT1 T1::= (bc|d) S1eT1| 2.5 语法分析树与句型分析 掌握的主要概念与内容: 1)语法分析树; 2)最左推导、最右推导; 3)最左归约、最右归约; 4)规范推导、规范归约; 5)自顶向下分析与推导; 6)自底向上分析与归约。 2.5 推导与归约实例解释 例2.5.1. 已给文法G[E]: E::=E+T|T T::=T*F|F F::=i|(E) 试给出句子i*(i+i)的规范推导,指出每步推导所得句型的句柄。请画出相应的语法树。 E=T=T*(E) =T*(E+T)=T*(E+F)=T*(E+i)=T*(T+i) =T*(F+i)=T*(i+i)=F*(i+i)=i* (i+i) 2.5 语法树与文法的二义性 约定: 通常情况下,语法树指的最右推导对应的语法树或称规范推导下的语法树。 定义:如果对于某个文法的同一个句子存在两个不同的语法树,则称该句子是二义性的。包含有二义性句子的文法称为二义性的文法。 产生的原因:很多,如表达式求值中的运算符优先级问题。见P57。二义性需要消除。 例题解析 例1. 试证明下列文法为二义性文法: S::=AB|DC A::=aA|a B::=bBc|bc C::=cC|c D::=aDb|ab 证明:对句子abc,存在下列两个最右推导: S=AB=Abc=abc S=DC=Dc=abc 例题解析 例2. 在自底向上的分析中,用来归约句型句柄的规则称为句柄规则,证明:一个文法是无二义性的,当且仅当此文法的每一句型至多只有一个句柄和一个句柄规则。 证明:=因当前文法的每一句型仅有一个句柄和一个句柄规则,故当前句型有惟一的最左归约,即相应的每一步推导都有惟一的最右推导,故语法树惟一。 = 语法树惟一,即每一步推导都有惟一的最右推导,且对当前句型有惟一的最左归约,故当前文法的每一句型仅有一个句柄和一个句柄规则。 第2章 小结 作业: Page 67:ex4.4,ex4.5,ex5.1,ex5.2 主要内容:文法和语言的定义、文法的产生和语言的生成、句子的识别、文法的

文档评论(0)

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

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

1亿VIP精品文档

相关文档