資源描述:
《編譯原理第五章答案》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第5章自頂向下語法分析方法第1題對(duì)文法G[S]S→a
2、
3、(T)∧T→T,S
4、S(1)給出(a,(a,a))和(((a,a),,(a)),a)∧的最左推導(dǎo)。(2)對(duì)文法G,進(jìn)行改寫,然后對(duì)每個(gè)非終結(jié)符寫出不帶回溯的遞歸子程序。(3)經(jīng)改寫后的文法是否是LL(1)的?給出它的預(yù)測分析表。(4)給出輸入串(a,a)#的分析過程,并說明該串是否為G的句子。答案:也可由預(yù)測分析表中無多重入口判定文法是LL(1)的。可見輸入串(a,a)#是文法的句子。第3題已知文法G[S]:S→MH
5、aH→LSo
6、εK→dML
7、
8、εL→eHfM→K
9、bLM判斷G是否是LL(1)文法,如果是,構(gòu)造LL(1)分析表。第7題對(duì)于一個(gè)文法若消除了左遞歸,提取了左公共因子后是否一定為LL(1)文法?試對(duì)下面文法進(jìn)行改寫,并對(duì)改寫后的文法進(jìn)行判斷。(1)A→baB
10、εB→Abb
11、a(2)A→aABe
12、aB→Bb
13、d(3)S→Aa
14、bA→SBB→ab答案:(1)先改寫文法為: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)文法:A
15、→aABe
16、aB→Bb
17、d提取左公共因子和消除左遞歸后文法變?yōu)椋?)A→aN1)N→ABe2)N→ε3)B→dN14)N1→bN15)N1→ε(3)文法:S→Aa
18、bA→SBB→ab第1種改寫:用A的產(chǎn)生式右部代替S的產(chǎn)生式右部的A得:S→SBa
19、bB→ab消除左遞歸后文法變?yōu)椋?)S→bN1)N→BaN2)N→ε3)B→ab也可由預(yù)測分析表中無多重入口判定文法是LL(1)的。第2種改寫:用S的產(chǎn)生式右部代替A的產(chǎn)生式右部的S得:S→Aa
20、bA→AaB
21、bBB→ab消除左遞歸后文法變?yōu)椋?)S→Aa
22、1)S→b2)A→bBN3)N→aBN4)N→ε5)B→ab預(yù)測分析表: