1.将以下文法消除左递归,并分析符号串 i*i+i
E -> E+T | T
T -> T*F | F
F -> (E) | i
解:
(1) E->TE'
E'->+TE'|ε
(2) T->FT'
T'->*FT'|ε
(3) F->(E)|i
2.教材101页7(2) (3)
(2) A->aABe|a
B->Bb|d
解:S->Aa|b S->SBa|b
A->SB
B->ab
(3) S->Aa|b
A->SB
B->ab
3.课堂练习:
求以下文法的FIRST集、FOLLOW集和SELECT集。
S->Ap
A->a |ε
A->cA
A->aA
① FIRST集:
First(S) = First(Ap) ={a,c}
First(a) = {a}
First(cA) = {c}
First(aA) = {a}
② FOLLOW集:
Follow
S->Ap
S->Bq
A->a
A->cA
B->b
B->dB
① FIRST集:
First(S1) = First(Ap) ={a,c}
First(S2) = First(Bq) ={b,d}
First(a) = {a}
First(cA) = {c}
First(b) = {b}
First(dB) = {d}
First(A) = {a,c} First(B) = {b,d}
② FOLLOW集: