- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理及编译程序构造 部分课后答案(张莉 杨海燕编著)
第一章
练习1
2、典型的编译程序可划分为哪几个主要的逻辑部分?各部分的主要功能是什么?
典型的编译程序具有7个逻辑部分:
第二章
练习2.2
4.试证明: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∪…∪A An∪…
=A∪A2∪A3∪An +1∪…
= A+
同理可得:
A*A =(A0∪A1∪A2∪…∪An∪…)A
=A0 A∪A1A∪A2A∪…∪AnA∪…
= A∪A2∪A3∪An+1∪…
= A+
因此: A+ =AA*=A*A
练习2.3
1.设G[〈标识符〉]的规则是 :
〈标识符〉::=a|b|c|
〈标识符〉a|〈标识符〉c|
〈标识符〉0|〈标识符〉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
=aaa
2.写一文法,其语言是偶整数的集合
解:G[偶整数]:
偶整数::= 符号 偶数字| 符号数字串偶数字
符号 ::= + | — |ε
数字串::= 数字串数字|数字
数字 ::= 偶数字| 1 | 3 | 5 | 7 | 9
偶数字 ::=0 | 2 | 4 | 6 | 8
4. 设文法G的规则是:
〈A〉::=bA| 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*
∴由语言定义,cc, bcc, bbcc, bbbcc∈L[G]
5 试对如下语言构造相应文法:
(1){ a(bn)a | n=0,1,2,3,……},其中左右圆括号为终结符。
(2) { (an)(bn) | n=1,2,3,……}
解:(1)文法[G〈S〉]:
S::= a(B)a
B::= bB |ε
( 2 ) 文法[G〈S〉]:--错了,两个n不等
S ::= (A)(B)
A::= aA|a
B::= bB|b
7.对文法G3[〈表达式〉]
〈表达式〉::=〈项〉|〈表达式〉+〈项〉|〈表达式〉-〈项〉
〈项〉::=〈因子〉|〈项〉*〈因子〉|〈项〉/〈因子〉
〈因子〉::=(〈表达式〉)| i
列出句型〈表达式〉+〈项〉*〈因子〉的所有短语和简单短语。
表达式 = 表达式 + 项
= 表达式 + 项 * 因子
短语有:
〈表达式〉+〈项〉*〈因子〉和〈项〉*〈因子〉
简单短语是:〈项〉*〈因子〉
8 文法V::= aaV | bc的语言是什么?
?
解:L(G[V])= {a2nbc | n=0,1,2,……}
V ? aaV ?aaaaV ?.... ? a2nbc (n ≥ 1)
V ? bc (n=0)
练习2.4
5.已知文法G[E]:
E::=ET+ | T
T::=TF* |F
F::=FP↑ |P
P::=(E)| i
有句型TF*PP↑+,
问此句型的短语,简单短语,和句柄是什么?
解:此句型的短语有:TF*PP↑+,TF*,PP↑,P
简单短语有:TF*,P
句柄是:TF*
8.证明下面的文法G是二义的:
S::= iSeS | iS | i
证:由文法可知iiiei是该文法的句子,
又由文法可知iiiei有两棵不同的语法树。
所以该文法是二义性文法。
第三章
练习3.1
1.画出下述文法的状态图
〈Z〉::=〈B〉e
〈B〉::=〈A〉f
〈A〉::= e |〈A〉e
使用该状态图检查下列句子是否是该文法的合法句子
f,eeff,eefe
2、有下列状态图,其中S为初态,Z为终态。
(1) 写出相应的正则文法:
(2) 写出该文法的V,Vn和Vt;
(3) 该文法确定的语言是什么?
解:(1) Z→A1|0 A→A0|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|00*1}
练习3.2
1.令A,B,C是任意正则表达式,证明
以下关系成立:
A|A=A
(A*)*= A*
A*=ε| AA*
(AB)*A = A(BA)*
(A|B)* =(A*B*)*=(A*|B*)
文档评论(0)