µ±Ç°Î»ÖãºÊ×Ò³ > ±àÒëÔÀí¸´Ï°Ìâ-¸øÑ§Éú£¨¼ò£©
¡¶±àÒëÔÀí¡·¸´Ï°Ìâ
35£®ÎÄ·¨
S ? A a | b A c | d c | b d a A ? d
Ôìʶ±ð»îǰ׺µÄDFA¡£Çë¸ù¾ÝÕâ¸öDFAÀ´ÅжϸÃÎÄ·¨ÊDz»ÊÇSLR(1)ÎÄ·¨²¢ËµÃ÷ÀíÓÉ¡£ ¡¾½â¡¿ S¡¯ S S¡¯
? ? .
S A S a S S ? ? ? .
A a c S A S b S S ? ? ? b . d S A c a S d ? S ? S b ? c S d .d .?
c Follow(S)={#} Follow(A)={a,c}
I4´æÔÚ³åÍ»ÇÒFollow(A)¡É{c}={ c} I7´æÔÚ³åÍ»ÇÒFollow(A)¡É{a}={ a} ËùÒÔ²»ÊÇSLR(1)ÎÄ·¨
36£®½«ÏÂͼËùʾµÄÈ·¶¨ÓÐÏÞ×Ô¶¯»ú(DFA)×îС»¯¡£ÆäÖУ¬XΪ³õ̬£¬YΪÖÕ̬¡£
¡¾½â¡¿ £±-£¹ £°-£¹ ?(ÆäËü) 2 3 1 0 38£®ÉèÓÐÎÄ·¨G[S]:
S¡úS*S|S+S|(S)|i
¸ÃÎÄ·¨ÊÇ·ñΪ¶þÒåÎÄ·¨,²¢ËµÃ÷ÀíÓÉ£¿
¡¾½â¡¿¸ÃÎÄ·¨ÊǶþÒåÎÄ·¨£¬ÒòΪ¸ÃÎÄ·¨´æÔÚ¾ä×Ói*i+i,¸Ã¾ä×ÓÓÐÁ½¿Ã²»Í¬µÄÓï·¨Ê÷ÈçͼËùʾ¡£
S S i (1) S S S i + S i S i S * + S i (2) *
aaXb21ba3abYb ¡¾½â¡¿ ÏÈ»®·ÖΪÖÕ̬¼¯{Y}ºÍ·ÇÖÕ̬¼¯I={X,1,2,3}
XÃæ¶ÔÊäÈë·ûºÅbʱÏÂһ״̬ÊôÓÚI£¬¶ø1,2,3Ãæ¶ÔÊäÈë·ûºÅbʱÏÂһ״̬ÊôÓÚ{Y}£¬¹Ê»®·ÖΪ{X}¡¢{1,2,3}
·ÇÖÕ̬2ºÍ·ÇÖÕ̬3Ãæ¶ÔÊäÈë·ûºÅaµÄÏÂһ״̬Ïàͬ£¬¶ø1²»Í¬£¬¼´×î¼ò״̬{X}¡¢{1}¡¢{2£¬3}¡¢{Y}¡£°´Ë³ÐòÖØÐÂÃüÃûΪ0¡¢1¡¢2¡¢3£¬ÔòµÃµ½×î¼òDFA£¬
a0ab21abb339£®³ÌÐòµÄÎÄ·¨ÈçÏ£º
P ¡ú D
D ¡ú D;D | id : T | proc id; D; S
дһÓï·¨ÖÆµ¼¶¨Ò壬´òÓ¡¸Ã³ÌÐòÒ»¹²ÉùÃ÷Á˶àÉÙ¸öid
¡¾½â¡¿ ÊôÐÔnum±íʾid¸öÊý P ¡ú D print(D.num) D ¡ú D(1)£»D(2) D.num = D(1).num + D(2).num D ¡ú id : T D.num = 1 D ¡ú proc id; D(1); S D.num = D(1).num + 1
Àý£ºproc id; proc id; id : T; S; S£¨´ÓÓï·¨Ê÷·ÖÎöÈëÊÖ£©
£¨×¢Ò⣺±¾ÀýÖ»ÊǰïÖúѧÉúÀí½âÌâÒ⣬²»ÊǴ𰸲¿·Ö£©
P D procid ; D ; S procid ; D ; S
37£®Ç뻳öʶ±ðÎÞ·ûºÅÊ®½øÖÆÕûÊýµÄ״̬ת»»Í¼
21
id : T ¡¶±àÒëÔÀí¡·¸´Ï°Ìâ
40£®°ÑÏÂÁÐÓï¾ä·ÒëΪËÄԪʽÐòÁУ¨ËÄԪʽÐòºÅ int real id , # D D ? D ? ´Ó1¿ªÊ¼£©£º
while (A > B) if (C > D)
X = Y * Z
else
X = Y + Z ¡¾½â¡¿(1) (j>, A, B, 3) (2) (j, _, _, 11) (3) (j>, C, D, 5) (4) (j, _, _, 8) (5) (*, Y, Z, T1) (6) (=, T1, _, X) (7) (j, _, _, 1) (8) (+, Y, Z, T2) (9) (=, T2, _, X) (10) (j, _, _, 1) (11)
41.¹¹ÔìÏÂÃæÎÄ·¨µÄLL£¨1£©·ÖÎö±í¡£ G[D]: D ? TL
T ? int | real L ? id R
R ? , id R | ?
¡¾½â¡¿FIRST(T)={ int realFOLLOW(T)={ id } FIRST(L)={ id FOLLOW(L)={ #}
FIRST(R)={ , FOLLOW(R)={ #}
FIRST(D)={ int real FOLLOW(D)={#}
ÒòΪFIRST(int)¡ÉFIRST(real)=¦µ
FIRST(, id R)¡ÉFOLLOW(R)=¦µ
ËùÒÔÊÇLL£¨1£©ÎÄ·¨£¬LL£¨1£©·ÖÎö±íÈçÏ£º
TL TL T T ? T ? int real L L ? id R R R ? , R ? ? id R 42£®¸ø¶¨ÎÄ·¨S¡úaS|bS|a£¬ÏÂÃæÊÇÍØ¹ãÎÄ·¨ºÍʶ±ð¸ÃÎÄ·¨Ëù²úÉúµÄ»îǰ׺µÄDFA¡£ÅжϸÃÎÄ·¨ÊÇ·ñÊÇSLR(1)ÎÄ·¨£ºÈç¹ûÊǹ¹ÔìÆäSLR(1)·ÖÎö±í£¬Èç¹û²»ÊÇÇë˵Ã÷ÀíÓÉ¡£
(1)½«ÎÄ·¨G(S)ÍØ¹ãΪG(S¡¯)£º
(0)S¡¯¡úS (1)S¡úaS (2)S¡úbS (3)S¡úa
(2)ʶ±ð¸ÃÎÄ·¨Ëù²úÉúµÄ»îǰ׺µÄDFAÈçͼ1Ëùʾ¡£
} } ?}
ͼ1
}
¡¾½â¡¿×¢Ò⵽״̬I1´æÔÚ¡°Òƽø-¹éÄÉ¡±³åÍ»£¬¼Æ
ËãSµÄFOLLOW¼¯ºÏ£º
FOLLOW(S)={#}
{a}¡É{b}¡ÉFOLLOW(R)=¦µ
¿ÉÒÔ²ÉÓÃSLR³åÍ»Ïû½â·¨£¬µÃµ½ÈçϵÄSLR·ÖÎö±í¡£
´Ó·ÖÎö±í¿ÉÒÔ¿´³ö£¬±íÖÐûÓгåÍ»ÏËùÒÔ¸ÃÎÄ·¨
ÊÇSLR(1)ÎÄ·¨¡£
22
¡¶±àÒëÔÀí¡·¸´Ï°Ìâ
±í1 SLR·ÖÎö±í ״̬ 0 1 2 3 a S1 S1 S1 ACTION b S2 S2 S2 # r3 acc GOTO S 3 4 5 B¡ú.
µ«¸ÃÏîÄ¿ÖÐÓÐÁ½¸ö¿É¹éÔ¼ÏîÄ¿£ºA¡ú. B¡ú.£¬²úÉú¹éÔ¼-¹éÔ¼³åÍ»£¬¶øfollow£¨A£©={a£¬b}£¬follow£¨B£©={a£¬b}£¬ÓÐfollow£¨A£©¡Éfollow£¨B£©¡Ù¦µ£¬ËùÒÔʹÓÃÏòǰ¿´Ò»¸öÖÕ½á·ûµÄ·½·¨²»Äܽâ¾ö´Ë³åÍ»£¬ËùÒÔ¸ÃÎÄ·¨²»ÊÇSLR£¨1£©ÎÄ·¨¡££¨3·Ö£©
45£®ÏÖÓÐÎÄ·¨G[S]
S¡úa|¦Å|(T) T¡úT,S|S
4 r1 Çë¸ø³ö¾ä×Ó£¨a,(a,a)£©µÄ×î×ó¡¢×îÓÒÍÆµ¼£¬²¢
Ö¸³ö×îÓÒÍÆµ¼ÖÐÿһ¸ö¾äÐ͵ľä±ú¡£ 5 r2 ´ð£º×î×óÍÆµ¼£ºS=¡µ£¨T£©=¡µ£¨T£¬S£©=¡µ£¨S£¬
S£©=¡µ£¨a£¬S£©=¡µ£¨a£¬£¨T£©£©=¡µ£¨a£¬£¨T£¬S£©£©=¡µ
43£®¸ø³ö±í´ïʽ-a*b+b*c+d/eµÄÓï·¨Ê÷ºÍÈýԪʽÐò
£¨a£¬£¨S£¬S£©£©=¡µ£¨a£¬£¨a£¬S£©£©=¡µ£¨a£¬£¨a£¬a£©£©
ÁС£
×îÓÒÍÆµ¼£º
´ð£ºÓï·¨Ê÷
S=¡µ£¨T£©=¡µ£¨T£¬S£©=¡µ£¨T£¬£¨T£©£©=¡µ£¨T£¬£¨T£¬ÈýԪʽ
S£©£©=¡µ£¨T£¬£¨T£¬a£©£©=¡µ£¨T£¬£¨S£¬a£©£©=¡µ£¨T£¬£¨a£¬
+ a£©£©=¡µ£¨S£¬£¨a£¬a£©£©=¡µ£¨a£¬£¨a£¬a£©£©
¾äÐ͵ľä±úÊÇΪ¼ÓÏ»®ÏߵIJ¿·Ö
+ 46£®½«ÏÂͼµÄDFA×îС»¯¡£
/ * * - a b b c d 0 b 1 a 3 a 2 a b b a 4 e a b b
¢Ù£¨-£¬a£¬-£© ¢Ú£¨*£¬¢Ù£¬b£© ¢Û£¨*£¬b£¬c£© ¢Ü£¨+£¬¢Ú£¬¢Û£© ¢Ý£¨/£¬d£¬e£© ¢Þ£¨+£¬¢Ü£¬¢Ý£© 44£®Ö¤Ã÷ÏÂÃæÎÄ·¨S¡úAaAb|BbBa A¡ú¦Å B¡ú¦Å£¬ÊÇLL£¨1£©ÎÄ·¨£¬µ«²»ÊÇSLR£¨1£©ÎÄ·¨¡£
Ö¤Ã÷£º
£¨1£©first£¨AaAb£©={a} first£¨BbBb£©={b} £¬
0 1 ÓÐfirst£¨AaAb£©¡Éfirst£¨BbBb£©=¦µ
b b ËùÒÔ¸ù¾ÝLL£¨1£©ÎÄ·¨µÄ¶¨Ò壬¸ÃÎÄ·¨ÊÇLL£¨1£©a ÎÄ·¨¡££¨2·Ö£©
£¨2£©ÎªÁ˹¹Ôìʶ±ð»îǰ׺µÄDFA£¬³õ̬¼¯°üº¬Èç
47£®ÉèÓÐÈçÏÂÎÄ·¨£ºP¡úD
ÏÂËĸöÏîÄ¿£ºS¡ú.AaAb S¡ú.BbBa A¡ú.
23
´ð£º³õʼ»®·Ö£ºII={{0£¬1£¬2}£¬{3£¬4}}£¨1·Ö£©
£¨1£©¿¼²é{0£¬1£¬2}£¬1ºÍ2½ÓÊÜa£¬bºó¶¼×ªÏòÏàͬµÄ״̬£¬ÇÒ½ÓÊÜbºóתÏòÖÕ̬£¬¶ø0½ÓÊÜbºóתÏò·ÇÖÕ̬2£¬ËùÒÔ0Óë1£¬2¿É·Ö£¬IInew={{0}£¬{1£¬2}£¬{3£¬4}}(1·Ö)
£¨2£©¿¼²é{3£¬4}£¬½ÓÊÜa£¬bºó¶¼×ªÏòÏàͬµÄ״̬£¬ËùÒÔ3£¬4²»¿É·Ö¡£IInew={{0}£¬{1£¬2}£¬{3£¬4}}£¨1·Ö£©
½«1£¬2ºÏ²¢ÓÃ1´ú±í£¬3£¬4ºÏ²¢ÓÃ3´ú±í£¬×îÖÕµÄ×îС»¯DFAÈçÏ£º
a 3 b
¡¶±àÒëÔÀí¡·¸´Ï°Ìâ
D¡úD£»D|id£ºT|proc id£»D£» T¡úreal|integer
¸ø³öÒ»¸öÓï·¨ÖÆµ¼¶¨Ò壬´òÓ¡¸Ã³ÌÐòÒ»¹²ÉùÃ÷Á˶àÉÙ¸öid¡£ ´ð£º
48£®Ê¶±ðÎÄ·¨GµÄ»îǰ׺µÄDFAÈçÏÂͼËùʾ£¬²¹ ÎÄ·¨ Óï·¨ÖÆµ¼¶¨Òå ³äP¡úD Print£¨D.num£© ÍêD¡úD1£»D2 D.num=D1.num+ ³ÉD2.num ×´D¡úid£ºT D.num=1 ̬D¡úproc D.num=D1.num+ Iid£»D1£» 1 2 ºÍT¡úreal ¡ú IT5integer £¬È»ºó¸ù¾Ý
49£®¸Ãͼ¹¹ÔìSLR£¨1£©·ÖÎö±í¡£ G£º(0) P'¡úP (1) P¡úaPb (2) P¡úQ (3) Q¡úbQc
(4) Q¡úbSc (5) S¡úSa (6) S¡úa
Follow£¨P£©={b£¬$} 1·Ö Follow£¨Q£©={ b£¬c£¬$} 1·Ö Follow£¨S£©={c£¬a} 1·Ö SLR£¨1£©·ÖÎö±í£º 0 1 2 3 4 5 6 7 8 9 10 11 12 a S2 S2 S6 R6 S12 R5 Action±í b S5 S5 R2 S7 S5 R1 R3 R4 c R6 R3 S8 S11 R4 R5 $ Acc R2 R1 R3 R4 P 1 4 GOTO±í Q 3 3 9 S 10 I0 :P'¡ú.P P¡ú.aPb P¡ú.Q P I1 :P'¡úP. I2 : :P¡úa.Pb a P ¡ú .aPb P I4 :P¡úaP.b 49£®¸ø³ö±í´ïʽ£¨a+b£©*(c+d/e)µÄÓï·¨Ê÷ºÍËÄԪʽÐòÁС£
´ð:Óï·¨Ê÷ÈçÏ£º ËÄԪʽÐòÁУº
* + + / a d e b c P ¡ú .Q b I7 :P¡úaPb. Q ¡ú .bQc a Q¡ú.bQc b Q¡ú.bSc Q¡ú.bSc I8 :Q¡úbQc. Q b Q I 5 : Q ¡ú b.Qc c I3 :P¡úQ. I9 :Q¡úbQ.c Q ¡ú b.Sc Q b Q¡ú.bQc I10 :Q¡úbS.c Q ¡ú .bSc S I6 : S¡úa. S¡úS.a a S ¡ú .Sa S ¡ú .a c I11 :Q¡úbSc. a I12 : S¡úSa.
´ð£ºI2£¬I5·Ö±ðÈçÏÂͼËùʾ£º
S A
a S¡úAaAb A¡ú¦Å b S¡úBbBa A¡ú¦Å $ 24
50£®¹¹ÔìÎÄ·¨S¡úAaAb|BbBa A¡ú¦Å B¡ú¦Å£¬µÄÔ¤²â·ÖÎö±í¡£
´ð£ºfirst£¨S£©={a£¬b},First£¨AaAb£©={a}£¬First£¨BbBa £©={b}
Follow£¨A£©={a£¬b} Follow£¨B£©={a£¬b}
¢Ù£¨+£¬a£¬b£¬T1£© ¢Ú£¨/£¬d£¬e£¬T2£© ¢Û£¨+£¬c£¬T2£¬T3£© ¢Ü£¨*£¬T1£¬T3£¬T4£© B B¡ú¦Å B¡ú¦Å
¹²·ÖÏí92ƪÏà¹ØÎĵµ