第三章习题解答_第1页
第三章习题解答_第2页
第三章习题解答_第3页
第三章习题解答_第4页
第三章习题解答_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

第三章自上而下分析,习题解答,已知一个文法.消除文法的左递归、提取公共左因子(4分).对得到的文法求First集合和Follow集合(4分).对得到的文法构造一个预测分析表;(4分).已知一个句子,给出分析过程。(3分),题目类型,4.1对文法GSSa|(T)TT,S|S(1)给出(a,(a,a)和(a,a),(a),a)的最左推导。(2)对文法G,进行改写,然后对每个非终结符写出不带回溯的递归子程序。(3)经改写后的文法是否是LL(1)的?给出它的预测分析表。(4)给出输入串#(a,a)#的分析过程,并说明该串是否为G的句子。,(1)对(a,(a,a)的最左推导为:S(T)(T,S)(S,S)(a,S)(a,(T)(a,(T,S)(a,(S,S)(a,(a,S)(a,(a,a),对(a,a),(a),a)的最左推导,S(T)(T,S)(S,S)(T),S)(T,S),S)(T,S,S),S)(S,S,S),S)(T),S,S),S)(T,S),S,S),S)(S,S),S,S),S)(a,S),S,S),S)(a,a),S,S),S)(a,a),S),S)(a,a),(T),S)(a,a),(S),S)(a,a),(a),S)(a,a),(a),a),Sa|(T)TT,S|S,文法GS,(2)改写文法为:0)Sa1)S2)S(T)3)TSN4)N,SN5)N,Sa|(T)TT,S|S,文法GS,procedureS;beginifsym=aorsym=thenabvanceelseifsym=(thenbeginadvance;T;ifsym=)thenadvance;elseerror;endelseerrorend;,procedureT;beginS;Nend,procedureNBeginifsym=,thenbeginadvance;s;Nendend,(2)改写文法为:0)Sa1)S2)S(T)3)TSN4)N,SN5)N,Sa|(T)TT,S|S,文法GS,非终结符FIRST集FOLLOW集Sa,(#,)Ta,()N,.),预测分析表,(3)对输入串(a,a)#的分析过程为:,栈剩余输入符所用产生式#S(a,a)#S(T)#)T(a,a)#)Ta,a)#TSN#)NSa,a)#Sa#)Naa,a)#)N,a)#N,SN#)NS,a)#)NSa)#Sa#)Naa)#)N)#N#)#,文法:,FIRST(E)=(,a,b,FIRST(E)=+,FIRST(T)=(,a,b,FIRST(T)=(,a,b,FIRST(F)=(,a,b,FIRST(F)=*,FIRST(P)=(,a,b,(1),FOLLOW(E)=#,)FOLLOW(E)=#,)FOLLOW(T)=+,),#FOLLOW(T)=+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(P)=*,(,a,b,+,),#,(2)考虑下列产生式:,FIRST(+E)FIRST()=+=FIRST(E)FOLLOW(E)=+#,)=FIRST(T)FIRST()=(,a,b,=FIRST(T)FOLLOW(T)=(,a,b,+,),#=FIRST(*F)FIRST()=*=FIRST(F)FOLLOW(F)=*(,a,b,+,),#=FIRST(E)FIRST(a)FIRST(b)FIRST()=,所以,该文法式LL(1)文法.,(3),(4),procedureE;beginifsym=(orsym=aorsym=borsym=thenbeginT;EendelseerrorendprocedureE;beginifsym=+thenbeginadvance;Eendelseifsym)andsym#thenerrorend,procedureT;beginifsym=(orsym=aorsym=borsym=thenbeginF;TendelseerrorendprocedureT;beginifsym=(orsym=aorsym=borsym=thenTelseifsym=*thenerrorend,procedureF;beginifsym=(orsym=aorsym=borsym=thenbeginP;FendelseerrorendprocedureF;beginifsym=*thenbeginadvance;Fendend,procedureP;beginifsym=aorsym=borsym=thenadvanceelseifsym=(thenbeginadvance;E;ifsym=)thenadvanceelseerrorendelseerrorend;,(1)是,满足三个条件。(2)不是,对于A不满足条件3。(3)不是,A、B均不满足条件3。(4)是,满足三个条件。,3,4.对下面文法Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVar

温馨提示

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

评论

0/150

提交评论