《编泽技术原理及方法》习题解答 第四章习题解答_第1页
《编泽技术原理及方法》习题解答 第四章习题解答_第2页
《编泽技术原理及方法》习题解答 第四章习题解答_第3页
《编泽技术原理及方法》习题解答 第四章习题解答_第4页
《编泽技术原理及方法》习题解答 第四章习题解答_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第四章——习题解答1.试分别消除下列文法的直接或者间接左递归(1)G[E]:E∷=T|EATT∷=F|TMFF∷=(E)|iA∷=+|-M∷=*|/解:“重复法”G[E]:E∷=T{AT}T∷=F{MF}F∷=(E)|iA∷=+|-M∷=*|/“改写法”G[E]:E∷=TE’E’∷=ATE’|εT∷=FT’T’∷=MFT’|εF∷=(E)|iA∷=+|-M∷=*|/(2)G[S]:S∷=SA|Ab|b|c……①A∷=Bc|a……②B∷=Sb|b……③解:将③式代入②式,得A∷=Sbc|bc|a……④将④式代入①式,得S∷=SA|Sbcb|bcb|ab|b|c“重复法”G[S]: S∷=(bcb|ab|b|c){A|bcb} A∷=Bc|a B∷=Sb|b“改写法”G[S]: S∷=(bcb|ab|b|c)S’ S’∷=(A|bcb)S’|ε A∷=Bc|a B∷=Sb|b(3)G[Z]:Z∷=V1V1∷=V2|V1iV2V2∷=V3|V2+V3V3∷=)V1*|(解:“重复法”G[Z]:Z∷=V1V1∷=V2{iV2}V2∷=V3{+V3}V3∷=)V1*|(“改写法”G[Z]:Z∷=V1V1∷=V2V1’V1’∷=iV2V1’|εV2∷=V3V2’V2’∷=+V3V2’|εV3∷=)V1*|((4)G[S]:S∷=Qc|c……①Q∷=Rb|b……②R∷=Sa|a……③解:将③式代入②式,得Q∷=Sab|ab|b……④将④式代入①式,得S∷=Sabc|abc|bc|c“重复法”G[S]:S∷=(abc|bc|c){abc}“改写法”G[S]:S∷=(abc|bc|c)S’S’∷=abcS’|ε(5)G[Z]:Z∷=AZ|b……①A∷=ZA|a……②解:将②式代入①式,得Z∷=ZAZ|aZ|b“重复法”G[Z]: Z∷=(aZ|b){AZ} A∷=ZA|a“改写法”G[Z]:Z∷=(aZ|b)Z’Z’∷=AZZ’|εA∷=ZA|a2.对下面文法G[E]:E∷=TE′E′∷=+E|εT∷=FT′T′∷=T|εF∷=PF′F′∷=*F′|εP∷=(E)|a|b|∧(1)计算这个文法的每个非终结符号的FOLLOW集和所有规则右部的FIRST集。(2)证明这个文法是LL(1)文法。(3)构造它的LL(1)分析表并分析符号串a*b+b。解:(1)①构造FIRST集FIRST(E’)={+,ε}FIRST(F’)={*,ε}FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)={(,a,b,∧}FIRST(T’)={(,a,b,ε,∧}②构造FOLLOW集规则一#∈FOLLOW(E)FOLLOW(E)={#}规则二)∈FOLLOW(E)FOLLOE(E)={),#}FIRST(E’)-{ε}⊆FOLLOW(T)FOLLOW(T)={+}FIRST(T’)-{ε}⊆FOLLOW(F)FOLLOW(F)={(,a,b,∧}FIRST(F’)-{ε}⊆FOLLOW(P)FOLLOW(P)={*}规则三FOLLOW(E)⊆FOLLOW(E’)FOLLOW(E’)={#,)}FOLLOW(E)⊆FOLLOW(T)FOLLOW(T)={+,#,)}FOLLOW(T)⊆FOLLOW(T’)FOLLOW(T’)={+,#,)}FOLLOW(T)⊆FOLLOW(F)FOLLOW(F)={(,),a,b,+,#,∧}FOLLOW(F)⊆FOLLOW(F’)FOLLOW(F’)={(,),a,b,+,#,∧}FOLLOW(F)⊆FOLLOW(P)FOLLOW(P)={(,),a,b,+,#,∧,*}最后结果为:FIRST(TE′)=FIRST(FT′)=FIRST(T)=FIRST(PF′)={(,a,b,∧}FIRST(+E)={+}FIRST(*F′)={*}FIRST((E))={(}FIRST(a)={a}FIRST(b)={b}FIRST(∧)={∧}FOLLOW(E’)={#,)}FOLLOW(T)=FOLLOW(T’)={+,#,)}FOLLOW(F)=FOLLOW(F’)={(,),a,b,+,#,∧}FOLLOW(P)={(,),a,b,+,#,∧,*}(2)证明:对于规则E’∷=+E|ε,T’∷=T|ε,F’∷=*F’|ε(仅有一边能推出空串)有FIRST(+E)∩FIRST(ε)=ø,FIRST(T)∩FIRST(ε)=ø,FIRST(*F’)∩FIRST(ε)=ø,FIRST(+E)∩FOLLOW(E’)=ø,FIRST(T)∩FOLLOW(T’)=ø,FIRST(*F’)∩FOLLOW(F’)==ø所以该文法是LL(1)文法。(3)①构造LL(1)分析表ab+*()∧#EE→TE’E→TE’E→TE’E→TE’E’E’→+EE’→εE’→εTT→FT’T→FT’T→FT’T→FT’T’T’→TT’→TT’→εT’→TT’→εT’→TT’→εFF→PF’F→PF’F→PF’F→PF’F’F’→εF’→εF’→εF’→*F’F’→εF’→εF’→εF’→εPP→aP→bP→(E)P→∧②分析符号串a*b+b步骤分析栈余留输入串所用的产生式1#Ea*b+b#E→TE’2#E’Ta*b+b#T→FT’3#E’T’Fa*b+b#F→PF’4#E’T’F’Pa*b+b#P→a5#E’T’F’aa*b+b#6#E’T’F’*b+b#F’→*F’7#E’T’F’**b+b#8#E’T’F’b+b#F’→ε9#E’T’b+b#T’→T10#E’Tb+b#T→FT’11#E’T’Fb+b#F→PF’12#E’T’F’Pb+b#P→b13#E’T’F’bb+b#14#E’T’F’+b#F’→ε15#E’T’+b#T’→ε16#E’+b#E’→+E17#E++b#18#Eb#E→TE’19#E’Tb#T→FT’20#E’T’Fb#F→PF’21#E’T’F’Pb#P→b22#E’T’F’bb#23#E’T’F’#F’→ε24#E’T’#T’→ε25#E’#E’→ε26##成功 所以符号串a*b+b是该文法的句子。3.对下面文法,构造每个非终结符号相应的FIRST集和FOLLOW集(1)S∷=aAdA∷=BCB∷=b|εC∷=c|ε解:①构造FIRST集FIRST(S)={a}FIRST(B)={b,ε}FIRST(C)={c,ε}FIRST(A)={b,c,ε}②构造FOLLOW集规则一#∈FOLLOW(S)FOLLOW(S)={#}规则二d∈FOLLOW(A)FOLLOE(A)={d}FIRST(C)-{ε}⊆FOLLOW(B)FOLLOW(B)={c}规则三FOLLOW(A)⊆FOLLOW(B)FOLLOW(B)={d,c}FOLLOW(A)⊆FOLLOW(C)FOLLOW(C)={d}最后结果为:FIRST(S)={a}FIRST(A)={b,c,ε}FIRST(B)={b,ε}FIRST(C)={c,ε}FOLLOW(S)={#}FOLLOW(A)={d}FOLLOW(B)={d,c}FOLLOW(C)={d}(2)A∷=BCc|gDBB∷=ε|bCDEC∷=DaB|caD∷=ε|dDE∷=gAf|c解:①构造FIRST集规则二FIRST(A)={g}FIRST(B)={b,ε}FIRST(C)={c}FIRST(D)={d,ε}FIRST(E)={g,c}规则三FIRST(A)={g,b,c}FIRST(C)={a,c,d}FIRST(A)={a,b,c,d,g}②构造FOLLOW集规则一#∈FOLLOW(A)FOLLOW(A)={#}规则二f∈FOLLOW(A)FOLLOE(A)={f,#}c∈FOLLOW(C)FOLLOE(C)={c}a∈FOLLOW(D)FOLLOE(D)={a}FIRST(Cc)-{ε}⊆FOLLOW(B)FOLLOW(B)={c,d,a}FIRST(B)-{ε}⊆FOLLOW(D)FOLLOW(D)={b,a}FIRST(DE)-{ε}⊆FOLLOW(C)FOLLOW(C)={d,g,c}FIRST(E)⊆FOLLOW(D)FOLLOW(D)={b,c,a,g}规则三FOLLOW(A) ⊆FOLLOW(B)FOLLOW(B)={a,c,d,f,#}FOLLOW(A) ⊆FOLLOW(D)FOLLOW(D)={a,b,c,f,g,#}FOLLOW(B)⊆FOLLOW(E)FOLLOW(E)={a,c,d,f,#}FOLLOW(C) ⊆FOLLOW(B)FOLLOW(B)={a,c,d,g,f,#}FOLLOW(B) ⊆FOLLOW(E)FOLLOW(E)={a,c,d,g,f,#}最后结果为:FIRST(A)={a,b,c,d,g}FIRST(B)={b,ε}FIRST(C)={a,c,d}FIRST(D)={d,ε}FIRST(E)={g,c}FOLLOE(A)={f,#}FOLLOW(B)={a,c,d,f,g,#}FOLLOW(C)={d,g,c}FOLLOW(D)={a,b,c,f,g,#}FOLLOW(E)={a,c,d,f,g,#}4.给定文法:S∷=a|∧|(T)T∷=T,S|S(1)改写这个文法,消除左递归。(2)改写后的文法是否是LL(1)文法?若是,构造它的LL(1)分析表。(3)写出该文法所描述的语言是什么?解:(1)改写后的文法为: S∷=a|∧|(T) T∷=ST’ T’∷=,ST’|ε(2)①构造FIRST集 FIRST(S)=FIRST(T)={a,∧,(} FIRST(T’)={,,ε}②构造FOLLOW集 FOLLOW(S)={#,,,)} FOLLOW(T)=FOLLOW(T’)={)}③构造LL(1)分析表 FIRST(a)={a} FIRST(∧)={∧}FIRST((T))={(}FIRST(ST’)={a,∧,(}FIRST(,ST’)={,}a∧(),#SS→aS→∧S→(T)TT→ST’T→ST’T→ST’T’T’→εT’→,ST’ 从分析表可以看出,不存在冲突,所以改写后的文法是LL(1)文法。(3)描述的语言是以a或者~为元组成分的n元组,例如(a,

~,

a,

~,

a)5.设已给文法G[S]:S∷=SaB|bBA∷=Sa|aB∷=Ac(1)将此文法改写为LL(1)文法。(2)对每一规则右部各候选式,构造FIRST集。(3)对每一非终结符构造FOLLOW集。(4)构造LL(1)分析表。解:(1)改写后的文法为:S∷=bBS’S’∷=aBS’|εA∷=Sa|aB∷=Ac(2)构造FIRST(S)={b}FIRST(S’)={a,ε}FIRST(A)=FIRST(B)={a,b}FIRST(bBS’)={b}FIRST(aBS’)={a}FIRST(Sa)={b}FIRST(a)={a}FIRST(Ac)={a,b}(3)构造FOLLOW集 FOLLOW(S)={a,#}FOLLOW(S’)={a,#}FOLLOW(A)={c}FOLLOW(B)={a,#}(4)abc#SS∷=bBS’AA∷=aA∷=SaBB∷=AcB∷=AcS’S’∷=aBS’,S’∷=εS’∷=ε存在冲突,不是LL(1)文法,主要的冲突在于[S’,a]此栏,是LL(2)文法,即每次遇见当前非终结符号为S’时,要向前看两个符号才可,改写以上LL(1)分析表如下:a(第一个字符)bc#SS∷=bBS’AA∷=aA∷=SaBB∷=AcB∷=AcS’a或b(第二个字符)c(第二个字符)S’∷=aBS’S’∷=εS’∷=ε6.设有文法G[Z]:Z∷=A|BA∷=aAb|cB∷=aBb|d(1)试构造能识别此LR(0)文法全部活前缀的DFA。(2)试构造LR(0)分析表。(3)试分析符号串aacbb是否为此文法的句子。解:(1)在上述文法中引入新的开始符号Z’,并将Z’::=Z作为第0个规则,从而得到所谓的拓广文法G’,则其LR(0)项目有:(1)Z’::=·Z (2)Z’::=Z· (3)Z::=·A(4)Z::=A· (5)Z::=·B (6)Z::=B·(7)A::=·aAb (8)A::=a·Ab (9)A::=aA·b(10)A::=aAb· (11)B::=·aBb (12)B::=a·Bb(13)B::=aB·b (14)B::=aBb· (15)B::=·d(16)B::=d· (17)A::=·c (18)A::=c·(2)构造LR(0)分析表状态ACTIONGOTOabcd#ZAB0S4S5S61231acc2r1r1r1r1r13r2r2r2r2r24S4S5S6785r4r4r4r4r46r6r6r6r6r67S98S109r3r3r3r3r310r5r5r5r5r5规则顺序:r1:Z→A r2:Z→B r3:A→aAbr4:A→c r5:B→aBb r6:B→d(3)分析符号串aacbb是否为该文法的句子步骤状态栈符号栈输入串分析动作下一状态10#aacbb#S44204#aacbb#S443044#aacbb#S5540445#aacbb#r4GOTO[4,A]=750447#aaAbb#S99604479#aaAbb#r3GOTO[4,A]=77047#aAb#S9980479#aAb#r3GOTO[0,A]=2902#A#r1GOTO[0,Z]=11001#Z#acc成功7.考虑文法:S∷=AS|bA∷=SA|a(1)构造该文法LR(0)的DFA;(2)判定其是否是LR(0)文法?是否是SLR(1)文法?若是,则构造SLR(1)分析表。(3)试分析符号串bab是否是该文法的句子。解:(1)在上述文法中引入新的开始符号S’,并将S’::=S作为第0个规则,从而得到所谓的拓广文法G’,则其LR(0)项目有: (1)S’∷=·S (2)S’∷=S· (3)S∷=·b (4)S∷=b· (5)S∷=·AS (6)S∷=A·S (7)S∷=AS· (8)A∷=·SA (9)A∷=S·A (10)A∷=SA· (11)A∷=·a (12)A∷=a·(2)由上述文法DFA中的状态I1可以看出,项目集中既存在移进项目A::=S·A和A::=·a又存在规约项目S’::=S·,这些项目是冲突项目,所以该文法不是LR(0)文法。因为该项目集中的移进与规约项目只根据一个输入符号就可唯一确定分析动作,因此是SLR(1)文法,构造SLR(1)分析表: FOLLOW(A)={b} FOLLOW(S)={#,b}状态ACTIONGOTOab#SA0S4S2131S4acc52r2r23S264r45r36r1r1规则顺序:r1:S→AS r2:S→b r3:A→SA r4:A→a(3)分析符号串bab是否为该文法的句子步骤状态栈符号栈输入串分析动作下一状态10#bab#S22202#bab#r2GOTO[0,S]=1301#Sab#S444014#Sab#r4GOTO[1,A]=55015#SAb#r3GOTO[0,A]=3603#Ab#S227032#Ab#r2GOTO[3,S]=68036#AS#r1GOTO[0,S]=1901#S#acc成功8.给定文法:E∷=EE+|EE*|a(1)构造它的LR(0)项目集规范族。(2)它是SLR(1)文法吗?若是,构造它的SLR(1)分析表。(3)它是LR(1)文法吗?若是,构造它的LR(1)分析表。(4)它是LALR(1)吗?若是,构造它的LALR(1)分析表。解:(1)在上述文法中引入新的开始符号E’,并将E’作为第0个规则:r1:E∷=EE+ r2:E∷=EE* r3:E∷=a则基本LR(0)项目集有:(1)E’∷=·E (2)E’∷=E· (3)E∷=·EE+ (4)E∷=E·E+(5)E∷=EE·+ (6)E∷=EE+· (7)E∷=·EE* (8)E∷=E·E*(9)E∷=EE·* (10)E∷=EE*· (11)E∷=·a (12)E∷=a·(2)在I1中存在移进项目和归约项目“E’∷=E·”冲突,因此该文法不是LR(0)文法,但有FOLLOW(E’)={#}∩{a}=Ø,而该动作冲突可用SLR(1)方法解决,该文法是SLR(1)文法,其分析表如下:状态ACTIONGOTO+*a#E0S211S2acc32r3r3r3r33S4S5S234r1r1r1r15r2r2r2r2(3)拓广文法的LR(1)项目集及状态转移图如下:构造LR(1)分析表如下:状态ACTIONGOTO+*a#E0S211S4acc32r3r33S6S7S454r3r3r35S8S9S456r1r17r2r28r1r1r19r2r2r2不存在多重定义的元素,所以该文法是LR(1)文法。(4)该文法为LALR(1)文法,其分析如下:状态ACTIONGOTO+*a#E0S2411S24acc3524r3r3r3r335S68S79S243568r1r1r179r2r2r29.给定文法G[Z]:Z∷=AAA∷=Ab|b(1)试构造能识别此LR(1)文法全部活前缀的DFA。(2)试构造LR(1)分析表。(3)请问该文法是否为LR(1)文法?解:(1)LR(1)文法的DFA:(2)构造LR(1)分析表状态ACTIONGOTOab#ZA0S3121acc2S543r34S6r15r2/r3r36r2r2规则顺序:r1:Z∷=AA r2:A∷=Ab r3:A∷=b(3)该文法不是LR(1)文法,因为其LR(1)分析表中状态5存在多重定义。10.给出文法G[E]:E∷=E+T|TT∷=TF|FF∷=F*|(E)|a|b|∧构造该文法的LR(1)项目集。解:在上述文法中引入新的开始符号E’,并将E’作为第0个规则,则LR(1)项目集如下:I0:E’::=·E,#E::=·E+T,#/+E::=·T,#/+T::=·TF,#/+/(/a/b/∧T::=·F,#/+/(/a/b/∧F::=·F*,#/+/(/a/b/∧/*F::=·(E),#/+/(/a/b/∧/*F::=·a,#/+/(/a/b/∧/*F::=·b,#/+/(/a/b/∧/*F::=·∧,#/+/(/a/b/∧/*I1:E’::=E·,#E::=E·+T,#/+I2:E::=T·,#/+T::=T·F,#/+/(/a/b/∧F::=·F*,#/+/(/a/b/∧/*F::=·(E),#/+/(/a/b/∧/*F::=·a,#/+/(/a/b/∧/*F::=·b,#/+/(/a/b/∧/*F::=·∧,#/+/(/a/b/∧/*I3:T::=F·,#/+/(/a/b/∧F::=F·*,#/+/(/a/b/∧/*I4:F::=(·E),#/+/(/a/b/∧/*E::=·E+T,)/+E::=·T,)/+T::=·TF,)/+/(/a/b/∧T::=·F,)/+/(/a/b/∧F::=·F*,)/+/(/a/b/∧/*F::=·(E),)/+/(/a/b/∧/*F::=·a,)/+/(/a/b/∧/*F::=·b,)/+/(/a/b/∧/*F::=·∧,)/+/(/a/b/∧/*I5:F::=a·,#/+/(/a/b/∧/*I6:F::=b·,#/+/(/a/b/∧/*I7:F::=∧·,#/+/(/a/b/∧/*I8:E::=E+·T,#/+T::=·TF,#/+/(/a/b/∧T::=·F,#/+/(/a/b/∧F::=·F*,#/+/(/a/b/∧/*F::=·(E),#/+/(/a/b/∧/*F::=·a,#/+/(/a/b/∧/*F::=·b,#/+/(/a/b/∧/*F::=·∧,#/+/(/a/b/∧/*I9:T::=TF·,#/+/(/a/b/∧F::=F·*,#/+/(/a/b/∧/*I10:F::=F*·,#/+/(/a/b/∧/*I11:F::=(E·),#/+/(/a/b/∧/*E::=E·+T,)/+I12:E::=T·,)/+T::=T·F,)/+/(/a/b/∧F::=·F*,)/+/(/a/b/∧/*F::=·(E),)/+/(/a/b/∧/*F::=·a,)/+/(/a/b/∧/*F::=·b,)/+/(/a/b/∧/*F::=·∧,)/+/(/a/b/∧/*I13:T::=F·,)/+/(/a/b/∧F::=F·*,)/+/(/a/b/∧/*I14:F::=a·,)/+/(/a/b/∧/*I15:F::=b·,)/+/(/a/b/∧/*I16:F::=∧·,)/+/(/a/b/∧/*I17:E::=E+T·,#/+T::=T·F,#/+/(/a/b/∧F::=·F*,#/+/(/a/b/∧/*F::=·(E),#/+/(/a/b/∧/*F::=·a,#/+/(/a/b/∧/*F::=·b,#/+/(/a/b/∧/*F::=·∧,#/+/(/a/b/∧/*I18:F::=(E)·,#/+/(/a/b/∧/*I19:E::=E+·T,)/+T::=·TF,)/+/(/a/b/∧T::=·F,)/+/(/a/b/∧F::=·F*,)/+/(/a/b/∧/*F::=·(E),)/+/(/a/b/∧/*F::=·a,)/+/(/a/b/∧/*F::=·b,)/+/(/a/b/∧/*F::=·∧,)/+/(/a/b/∧/*I20:F::=(·E),)/+/(/a/b/∧/*E::=·E+T,)/+E::=·T,)/+T::=·TF,)/+/(/a/b/∧T::=·F,)/+/(/a/b/∧F::=·F*,)/+/(/a/b/∧/*F::=·(E),)/+/(/a/b/∧/*F::=·a,)/+/(/a/b/∧/*F::=·b,)/+/(/a/b/∧/*F::=·∧,)/+/(/a/b/∧/*I21:F::=F*·,)/+/(/a/b/∧/*I22:E::=E+T·,)/+T::=T·F,)/+/(/a/b/∧F::=·F*,)/+/(/a/b/∧/*F::=·(E),)/+/(/a/b/∧/*F::=·a,)/+/(/a/b/∧/*F::=·b,)/+/(/a/b/∧/*F::=·∧,)/+/(/a/b/∧/*I23:F::=(E·),)/+/(/a/b/∧/*E::=E·+T,)/+I24:F::=(E)·,)/+/(/a/b/∧/*11.证明文法G[S]不是LR(1)文法。S∷=1S0|0S1|10|01证明:在上述文法中引入新的开始符号S’,并将S’作为第0个规则,则LR(1)项目集如下:I0:S’::=·S,#S::=·1S0,#S::=·0S1,#S::=·10,#S::=·01,#I1:S’::=S·,#I2:S::=1·S0,#S::=1·0,#S::=·1S0,0S::=·0S1,0S::=·10,0S::=·01,0I3:S::=0·S1,#S::=0·1,#S::=·1S0,1S::=·0S1,1S::=·10,1S::=·01,1I4:S::=1S·0,#I5:S::=10·,#S::=0·S1,0S::=0·1,0S::=·1S0,1S::=·0S1,1S::=·10,1S::=·01,1I6:S::=1·S0,0S::=1·0,0S::=·1S0,0S::=·0S1,0S::=·10,0S::=·01,0I7:S::=0S·1,#I8:S::=01·,#S::=1·S0,1S::=1·0,1S::=·1S0,0S::=·0S1,0S::=·10,0S::=·01,0I9:S::=0·S1,1S::=0·1,1S::=·1S0,1S::=·0S1,1S::=·10,1S::=·01,1I10:S::=1S0·,#I11:S::=0S·1,0I12:S::=01·,0S::=1·S0,1S::=1·0,1S::=·1S0,0S::=·0S1,0S::=·10,0S::=·01,0(其余从略)由于I12中同时出现归约项目“S::=01·,0”和移进项目“S::=·0S1,0”“S::=·01,0”,两者为冲突项目且无法通过向前看一位符号解决,因此该文法不是LR(1)文法。12.将文法G[S]S∷=EE∷=E+T|TT∷=T*F|FF∷=(E)|x|y(1)构造其SLR(1)分析表。(2)试分析符号串x+y*x是否为此文法的句子。解:(1)①该文法基本LR(0)项目集有:(1)S∷=·E (2)S∷=E· (3)E∷=·E+T (4)E∷=E·+T(5)E∷=E+·T (6)E∷=E+T· (7)E∷=·T (8)E∷=T·(9)T∷=·T*F (10)T∷=T·*F (11)T∷=T*·F (12)T∷=T*F·(13)T∷=·F (14)T∷=F· (15)F∷=·(E) (16)F∷=(·E)(17)F∷=(E·) (18)F∷=(E)· (19)F∷=·x (20)F∷=x·(21)F∷=·y (22)F∷=y·②构造SLR(1)分析表 FOLLOW(S)={#} FOLLOW(E)={#,+,)} FOLLOW(T)=FOLLOW(F)={#,+,),*}状态ACTIONGOTO+*()xy#SETF0S5S6S712341acc2S8r13r3S9r3r34r5r5r5r55S5S6S710346r7r7r7r77r8r8r8r88S5S6S71149S5S6S71210S8S1311r2S9r2r212r4r4r4r413r6r6r6r6规则顺序:r1:S→E r2:E→E+T r3:E→T r4:T→T*F r5:T→F r6:F→(E) r7:F→x r8:F→y(2)分析符号串x+y*x是否为该文法的句子步骤状态栈符号栈输入串分析

温馨提示

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

评论

0/150

提交评论