第四章 文法与语法分析.doc_第1页
第四章 文法与语法分析.doc_第2页
第四章 文法与语法分析.doc_第3页
第四章 文法与语法分析.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 文法与语法分析4.8 形如A-Aa 的产生式称为左递归的,类似地称B-B 的产生式为右递归的。证明如果一个非终极符既有左又有右递归式,则文法一定有二义性。答案:设文法的非终极符A,有产生式AA|AA|字符串 符合文法的要求,但分析树有两种A A/ / A A| | 因此非终极符既有左递归式,又有右递归式,则一定有二义性。4.12. 下列那些文法是LL(1)文法? 答案:LL(1)文法的条件:对于任意非终极符A,其任意两个产生式A-和A-都要满足下面条件:predict(A-)predict(A-)=;(a) 因为非终极符B 不可到达,所以最后两个产生式可以去掉。对具有相同左部的产生式A-a 和A-,它们的Predict 集的交集为空:predict(A-a)=a;Predict(A-)=b故a)所示文法是LL(1)文法。(b) 1)A,B 可导出空2)first(A)=a,b,first(B)=b,first(S)=a,bfollow(A)=b, follow(B)=b, follow(S)=#predict(S-Ab)=a,b,predict(A-a)=a,predict(A-B)=b,predict(A-)=bpredict(B-b)=b,predict(B-)=b因为predict(A-B)predict(A-)=b!=predict(B-b)predict(B-)=b!=所以不是LL(1)文法(c) 1)S,A,B 可导出空2)first(S)=a,b,first(A)=a,first(B)=b,follow(S) =#,follow(A) =a,b,#,follow(B) =a,b,#predict(S-ABBA)=a,b,#predict(A-a)=a,predict( A- )=a,b,# (*)predict(B-b)=b,predict(B-)=a,b,# (*)由(*)和(*)两行知,不是LL(1)文法.(d) 1)没有非终极符可导出空2)first(C)=c,d,first(B)=b,c,c,first(S)=a,b,c,dfollow(S)=e,#,follow(B)=e,#,follow(C)=c,e,#predict(S-aSe)=a,predict(S-B)=b,c,dpredict(B-bBe)=b,predict(B-C)=c,dpredict(C-cCc)=c,predict(C-d)=d因为满足LL(1)文法的条件,所以是LL(1)文法.4.13 对下列文法构造LL(1)分析表:E -EE -(E)E -Var EtailEtail -EEtail -Var -id VtailVtail -(E)Vtail -答案:First(E)=-, (, id Follow(E)=,)First(Etail)=-, Follow(Etail)=,)First(Var)= id Follow(Var)=-,)First(Vtail)= (, Follow(Vtail)-,)1 predict (E-E)= 2 predict (E(E)=(3 predict (EVar Etail)=id4 predict (Etail-E)= 5 predict (Etail)=,)6 predict (Varid Vtail)=id7 predict (Vtail(E)=(8 predict (Vtail)= ,)4.14 写出上述LL(1)分析器分析i-i(i)的过程,其中i 是标志符。4.15 对下列文法转换为LL(1)文法:DL -DL;DDL -DD -idL: TypeidL -ididL -idL, idType -StypeType -array (StypeL) of TypeSttype -idSTtype -Bound.BoundBound -Sign IntLiteralBound -idSign -+Sign -STypeL -STypeL, StypeSTypeL -Stype答案:First(DL)=idFirst(D)=idFirst(idL)=idFirst(Type)=id, array, +, -First(SType)=id, +, -First(Bound)= id, +, -First(Sign)=+, -First(SType L)= id, +, -1 DLDL; D2 DLD3 DidL:Type4 idLid5 idLidL,id6 TypeStype7 Typearray (STypeL) of Type8 Stypeid9 StypeBoundBound10 BoundSignIntLiteral11 Boundid12 Sign +13 Sign -14 STypeLSTypeL, Stype15 STypeLStype12的Predict 集相同45的Predict 集相同89 的Predict 集不为空1415 的Predict 集不为空改为下面的样子即为LL(1)文法12去掉45 去掉89 去掉1415 去掉添加: DLD DLtailDLtail ;DLtail|idLid idtailidt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论