【正文】
是 SLR(1)文法。c B→ aAa 3: S → A Ab A → 4: B→a aAc B → bBa 6: A → Ab b B→ aAba A→bBa a B → a A → B → Ab; B→ aA ; ? B → ; ? B → ; ? A → A; S → A ? SELECT(P?(E))={(} ? SELECT(P?a)={a} ? SELECT(P?b)= ? SELECT(P?^)={^} 預測分析表 + * ( ) a b ^ E ?TE‘ ?TE’ ?TE‘ ?TE’ E’ ?+E ?ε ?ε T ?FT‘ ?FT’ ?FT‘ ?FT’ T‘ ?ε ?T ?ε ?T ?T ?T ?ε F ?PF‘ ?PF’ ?PF‘ ?PF’ F’ ?ε ?*F‘ ?ε ?ε ?ε ?ε ?ε ?ε P ?(E) ?a ?b ?^ 習題 .第 3題 ? 有文法 G[S]: S’ ?S S?V V?T | ViT T?F | T+F F?)V* | ( 1. 給出 (+(i(的規(guī)范推導。 ? SELECT(T’ ?ε )=FOLLOW(T/)={+,),}。 證明這個方法是 LL(1)的 ? SELECT(E?TE/)=FIRST(T)={(,a,b,^}。 ? FOLLOW(F)=FIRST(T’)∪FOLLOW(T)={(,a,b,^,+,),}。 計算每個非終結(jié)符的 FOLLOW集合 ? FOLLOW(E)={),}。 ? FIRST(T‘)=FIRST(T)∪{ ε }={(,a,b,^,ε }。 ?證明這個方法是 LL(1)的。 ? 由于 F(1,b)=F(2,b)=2,F(1,a)=3,F(2,a)=4,而 3, 4等價,所以 1,2等價。6何是等價狀態(tài) 。 ?1態(tài)輸入 b后為 3,是非終態(tài) 。 ( 1)給出該句子的相應的最左推導和最右推導 ( 2)該文法的產(chǎn)生式集合 P可能有哪些元素? ( 3)找出該句子的所有的短語、簡單短語、句柄。 ? S?ABS?aBS?aSBBS ?a?BBS ?a?bBS?a?bbS?a?bbAa?a?bbaa 最左推導 最右推導略 ? 產(chǎn)生式集合: S→ABS B→SBB S→Aa S→ ? B→b A→a 短語、句柄 S A B S a S B B A a ? b b a 習題解答 7.給文法 G[S]: – S?aA|bQ – A?aA|bB|b – B?bD|aQ – Q?aQ|bD|b – D?bB|aA – E?aB|bF – F?bD|aE|b ? 構造相應的最小的 DFA。2和 3輸入 b后為 4和 5是終態(tài) ,所以 1和 2,3是不同的狀態(tài) 。 ?所以 ,最后剩下 :1,2,4,6四個狀態(tài) . a 6 2 b a a 1 b a b b 4 最小化的 DFA 1 2 4 3 7 6 a b b