编译原理第二版张素琴著第五章习题参考答案.doc_第1页
编译原理第二版张素琴著第五章习题参考答案.doc_第2页
编译原理第二版张素琴著第五章习题参考答案.doc_第3页
编译原理第二版张素琴著第五章习题参考答案.doc_第4页
全文预览已结束

下载本文档

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

文档简介

第五章 习题参考答案1、(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)对( 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 )对( a, a ), , ( a ), a )的最左推导为:S ( T ) ( T, S ) ( T, a ) ( S, a ) ( T ), a ) ( T, S ), a ) ( T, ( T ), a ) ( T, ( S ), a ) ( T, ( a ), a ) ( T, S, ( a ), a ) ( T, , ( a ), a ) ( S, , ( a ), a ) ( T ), , ( a ), a ) ( T, S ), , ( a ), a ) ( T, a ), , ( a ), a ) ( S, a ), , ( a ), a ) ( a, a ), , ( a ), a ) (2) 改写文法为: 0) Sa 1) S 2) S( T ) 3) TS N4) N, S N5) N 入口入口入口S: T:N: ,YNNSNYaRead(w)YNNS出口N出口Y(出错Read(w)TN)Read(w)出口(3)非终结符FIRST集FOLLOW集Sa,(#,)Ta,().N,.).对左部为N的产生式可知:SELECT(Sa)SELECT(S) SELECT(S( T )=SELECT(N , S N)SELECT(N ) =, )=所以文法是LL(1)的。 预测分析表a(),#Sa(T)TS NS NS NN, S N也可由预测分析表中无多重入口判定文法是LL(1)的。(4) 对输入串(a,a)#的分析过程为:栈(STACK)当前输入符(CUR_CHAR)剩余输入符(INOUT_STRING)所用产生式(OPERATION)#S #)T(#)T #)NS #)Na#)N#)NS,#)NS #)Na#)N#)#(aaa,aa)#a,a)#.a,a)#.,a)#.,a)#.,a)#.a)#.a)#.)#.)#.#.#.S(T).TSNSa.N,SN.Sa.N可见输入串(a,a)#是文法的句子。6.(2) 不是LL(1)文法以A的产生式代入S,以D的产生式代入B中,提取左公共因子并删除多余产生式得文法:SBCCaB|BdF|FFb|分析表为abd#SBCBCBCBCBFFdFFCaBFb结论:经改写之后的文法是()文法。递归下降分析器如同题1,从略6.(4)消除左递归为:SiS(E)ESFF+SFF-SFF分析表为:+-i()ESFSFF+SF-SFSi(E)结论:经改写之后的文法是()文法。递归下降分析器如同题1,从略7.(1)文法不存在左递归第一种改法:以A的产生式替入B 产生式中BbaBbbBbbBa消除左公共因子:BbCCaBbbCbBa改写之后的文法的分析表:ab#BabCCaBbbb改写之后的文法是LL(1)文法第二种改法:以B的产生式替入A产生式中AbaAbbAbaaA消除左公共因子后为AAbaCCAbbCaSELECT(AbaC) SELECT(A) = b # ,b 所以,改写之后的文法不是LL(1)文法7.(3)第1种改写:用A的产生式右部代替S的产生式右部的A得: SSBa|bBab消除左递归后文法变为: 0) Sb N1) NB a N2) N3) Ba b 非终结符FIRST集FOLLOW集Sb.#Ba.aN,a#SELECT(NB a N)SELECT(N) = a # =所以文法是LL(1)的。预测分析表ab#Sb NBa bNB a N第2种改写:用S的产生式右部代替A的产生式右部的S得: SAa|bAAaB|bBBab 消除左递归后文法变为: 0) SA a 1) Sb 2) Ab B N3) Na B N4) N 5) Ba b非终结符FIRST集FOLLOW集Sb.#Ab.aBa.aNa,aSELECT(SA a)SELECT(Sb) = b b = b SELECT(Na B N)SELECT(N) = a a = a 所以文法不是LL(1)的。7.(5)以A、B的产生式代入S的产生式中的A、B,得新文法:SaCCAb|b|aAaA|a以A的产生式代入C中提取左公共因子得:SaCCaD|bDAb|b|AaA|a以A的产生式代入

温馨提示

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

评论

0/150

提交评论