资源描述:
《编译原理编译程序构造-部分课后与答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、..第一章练习12、典型的编译程序可划分为哪几个主要的逻辑部分?各部分的主要功能是什么?典型的编译程序具有7个逻辑部分:第二章练习2.24.试证明:A+=AA*=A*A证:∵A*=A0∪A+,A+=A1∪A2∪…∪An∪…得:A*=A0∪A1∪A2∪…∪An∪…∴AA*=A(A0∪A1∪A2∪…∪An∪…)=AA0∪AA1∪AA2∪…∪AAn∪…资料..=A∪A2∪A3∪An+1∪…=A+同理可得:A*A=(A0∪A1∪A2∪…∪An∪…)A=A0A∪A1A∪A2A∪…∪AnA∪…=A∪A2∪A3∪An+1∪…=A+因此:A+=AA*=A*
2、A练习2.31.设G[〈标识符〉]的规则是:〈标识符〉::=a
3、b
4、c
5、〈标识符〉a
6、〈标识符〉c
7、〈标识符〉0
8、〈标识符〉1试写出VT和VN,并对下列符号串a,ab0,a0c01,0a,11,aaa给出可能的一些推导。解:VT={a,b,c,0,1},VN={〈标识符〉}(1)不能推导出ab0,11,0a(2)〈标识符〉=>a(3)〈标识符〉=>〈标识符〉1=>〈标识符〉01=>〈标识符〉c01=>〈标识符〉0c01资料..=>a0c01(4)〈标识符〉=>〈标识符〉a=>〈标识符〉aa=>aaa2.写一文法,其语言是偶整数的集合解:G[
9、<偶整数>]:<偶整数>::=<符号><偶数字>
10、<符号><数字串><偶数字><符号>::=+
11、—
12、ε<数字串>::=<数字串><数字>
13、<数字><数字>::=<偶数字>
14、1
15、3
16、5
17、7
18、9<偶数字>::=0
19、2
20、4
21、6
22、84.设文法G的规则是:〈A〉::=b
23、cc试证明:cc,bcc,bbcc,bbbcc∈L[G]证:(1)〈A〉=>cc(2)〈A〉=>b〈A〉=>bcc(3)〈A〉=>b〈A〉=>bb〈A〉=>bbcc(4)〈A〉=>b〈A〉=>bb〈A〉=>bbb〈A〉=>bbbcc又∵cc,bcc,bbcc,bbbcc∈Vt*
24、∴由语言定义,cc,bcc,bbcc,bbbcc∈L[G]5试对如下语言构造相应文法:(1){a(bn)a
25、n=0,1,2,3,……},其中左右圆括号为终结符。资料..(2){(an)(bn)
26、n=1,2,3,……}解:(1)文法[G〈S〉]:S::=a(B)aB::=bB
27、ε(2)文法[G〈S〉]:--错了,两个n不等S::=(A)(B)A::=aA
28、aB::=bB
29、b7.对文法G3[〈表达式〉]〈表达式〉::=〈项〉
30、〈表达式〉+〈项〉
31、〈表达式〉-〈项〉〈项〉::=〈因子〉
32、〈项〉*〈因子〉
33、〈项〉/〈因子〉〈因子〉::=(〈表达式〉
34、)
35、i列出句型〈表达式〉+〈项〉*〈因子〉的所有短语和简单短语。<表达式>=><表达式>+<项>=><表达式>+<项>*<因子>资料..短语有:〈表达式〉+〈项〉*〈因子〉和〈项〉*〈因子〉简单短语是:〈项〉*〈因子〉8文法V::=aaV
36、bc的语言是什么?•解:L(G[V])={a2nbc
37、n=0,1,2,……}V⇒aaV⇒aaaaV⇒....⇒a2nbc(n≥1)V⇒bc(n=0)练习2.45.已知文法G[E]:E::=ET+
38、TT::=TF*
39、FF::=FP↑
40、PP::=(E)
41、i有句型TF*PP↑+,问此句型的短语,简单短语,和句柄
42、是什么?解:此句型的短语有:TF*PP↑+,TF*,PP↑,P简单短语有:TF*,P句柄是:TF*8.证明下面的文法G是二义的:S::=iSeS
43、iS
44、i证:由文法可知iiiei是该文法的句子,资料..又由文法可知iiiei有两棵不同的语法树。所以该文法是二义性文法。第三章练习3.11.画出下述文法的状态图〈Z〉::=〈B〉e〈B〉::=〈A〉f〈A〉::=e
45、〈A〉e使用该状态图检查下列句子是否是该文法的合法句子f,eeff,eefe2、有下列状态图,其中S为初态,Z为终态。(1)写出相应的正则文法:(2)写出该文法的V,Vn和Vt;(3
46、)该文法确定的语言是什么?解:(1)Z→A1
47、0A→A0
48、0(2)V={A,Z,0,1}资料..Vn={A,Z}Vt={0,1}(3)L(G[S])={0或0n1,n≥1}L(G[S])={0
49、00*1}练习3.21.令A,B,C是任意正则表达式,证明以下关系成立:A
50、A=A(A*)*=A*A*=ε
51、AA*(AB)*A=A(BA)*(A
52、B)*=(A*B*)*=(A*
53、B*)证明:⑴A∣A={x∣x∈L(A)或x∈L(A)}={x∣x∈L(A)}=A⑵(A*)*=(A*)0∪(A*)1∪(A*)2∪…∪(A*)n=ε∪(A0∪A1∪A2∪…
54、∪An)∪(A1…)=ε∪A0∪A1∪A2∪…∪An=A*⑶ε︱AA*所表示的语言是:{ε}∪LA·LA*=LA0∪LA(LA0∪LA1∪LA2∪…)资料..=LA0∪LA1∪L