《编译原理第五章答案》由会员分享,可在线阅读,更多相关《编译原理第五章答案(7页珍藏版)》请在金锄头文库上搜索。
1、第 5章 自顶向下语法分析方法第1题对文法 GSS a|(T) T T,S|S(1) 给出 (a,(a,a) 和 (a,a),(a),a) 的最左推导。(2) 对文法 G,进行改写,然后对每个非终结符写出不带回溯的递归子程序。(3) 经改写后的文法是否是 LL(1) 的 ?给出它的预测分析表。(4) 给出输入串 (a,a)# 的分析过程,并说明该串是否为 G 的句子。答案:也可由预测分析表中无多重入口判定文法是LL(1) 的。可见输入串( a,a) #是文法的句子。第3题已知文法 GS :S MH|aH LSo| K dML| L eHfM K|bLM判断 G 是否是 LL(1) 文法,如果是
2、,构造LL(1) 分析表。第7题对于一个文法若消除了左递归, 提取了左公共因子后是否一定为 LL(1) 文法 ?试对下面文法进行改写,并对改写后的文法进行判断。( )A baB| B Abb|a(2) A aABe|a B Bb|d(3) S Aa|b A SBB ab答案:( )先改写文法为:0) A baB1) A 2) B baBbb3) B bb4) B a再改写文法为:0) A baB1) A 2) B bN3) B a4) N aBbb5) N b( 2) 文法: AaABe|a BBb|d提取左公共因子和消除左递归后文法变为:0) A a N1) N A B e2) N 3) B
3、 d N14) N1 b N15) N1 ( 3)文法: SAa|b A SB Bab第1种改写:用 A 的产生式右部代替S 的产生式右部的A 得:S SBa|b B ab消除左递归后文法变为:0) S b N1) N B a N2) N 3) B a b也可由预测分析表中无多重入口判定文法是LL(1) 的。第2种改写:用 S 的产生式右部代替A 的产生式右部的S 得:S Aa|b A AaB|bB B ab消除左递归后文法变为:0) S A a1) S b2) A b B N3) N a B N4) N 5) B a b预测分析表:(资料素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注 )