- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理first集合
First follow
对下列文法G(S):
S—D(R) R—R;P|P
P—S|I D—i
①计算文法G中每个非终结符的FIRSTVT集和LASTVT集。
②构造文法G的算符优先关系矩阵。
解:(1)FIRSTVT(S)={(, i},FIRSTVT(D) ={i},FIRSTVT(R)={;, (, i},FIRSTVT(P)={i, (},LASTVT(S)={)},LASTVT(D)={i},LASTVT(R) = {;, ), i},LASTVT(P)={i, )}
(2)算符优先矩阵,如表A-5所示。
表A- 优先矩阵
( ) ; i # ( ) ; i # 设有文法G(S):
S—aBc|bAB
A—aAb|b
B—b|ε
①求各产生式的FIRST集,FOLLOW(A)和FOLLOW(B),以及各产生式的SELECT集。
②构造LL(1)分析表,并分析符号串baabbb是否是。
解:(1)FIRST(aBc)={a}, FIRST(bAB)={b} FIRST(aAb)={a}, A→b: FIRST(A→b)={b}, B→b: FIRST(b) = {b}, FIRST(ε)={ε}
FOLLOW(A)={b, #}, FOOLOW(B)={c, #}
SELECT(S→aBc)={a}, SELECT(S→bAB) ={b}, SELECT(A→aAb)={a}, SELECT(A→b)={b}, SELECT(B→b)={b}, SELECT(B→)={c, #}
因此,所得的LL(1)分析表如表A-4所示。
表A-4 LL(1)分析表
# S S→aBc S→bAB A A→aAb A→b B B→b B→ B→
(2)分析符号串baabbb成功,baabbb是该文法的句子,如图A-16所示。
图A-16 识别串baabbb的过程
3、设文法G(S):(12分)
FIRSTVT和LASTVT集合;
构造优先关系表和优先函数。(12分)
答:(6分)
FIRSTVT(S)={ i,+,),( }
FIRSTVT(A)={ +,),( }
FIRSTVT(B)={ ),( }
LASTVT(S)={ i,+,*,( }
LASTVT(A)={ +,*,( }
LASTVT(B)={ *,( }: (3分)
i + ( ) * i + ( ) *
优先函数: (3分)
i + ( ) * f 2 6 6 1 6 g 1 4 6 6 1
4、对表达式文法G:
E → E+T | T
T → T*F | F
F → (E) | I
(1)造各非终结符的FIRSTVT和LASTVT集合;
(2)构造文法的算符优先关系表。(15)
FIRSTVT LASTVT E
T
F *,+,(,i
*,(,i
(,i *,+,),i
*,),i
),i
算符优先关系表
+ * I ( ) # +
*
I
(
)
#
=
= 五、设有文法G[A]:
A→BCc | gDB
B→bCDE |ε
C→DaB | ca
D→dD |ε
E→gAf | c
计算该文法的每一个非终结符的FIRST集和FOLLOW集;
试判断该文法是否为LL(1)文法。(15)
FIRST FOLLOW A
B
C
D
E
A,b,c,d,g
b
A,c,d
D
C,g
A,c,d
C,d,g
A,b,c,g 是LL(1)文法。
对文法G(S):S → a | ^ | (T);T → T,S | S
答:(1)
a ^ ( ) , a ^ ( = ) , # =
(2) 是算符优先文法,因为任何两个终结符之间至多只有一种优先关系(3) 给出输入串(a,a)#的算符优先分析过程。
栈 当前输入字符 剩余输入串 动作 1 # ( a,a# #( 移进 2 #( A ,a)# (a 移进 3 #(a , a)# a, 归约 4 #(N , a)# (, 移进 5 #(N, A )# ,a 移进 6 #(N,a ) # a) 归约 7 #(N,N ) # ,) 归约 8 #(N ) # (=) 移进 9 #(N) # ? )# 归约 10 #N # 接受
3、对于文法G(S):
答:1)
2) 短语: Ma), (Ma
文档评论(0)