蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx
《蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx》由会员分享,可在线阅读,更多相关《蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx(84页珍藏版)》请在课桌文档上搜索。
1、编译原理课后习题答案第一章1 .解:源程序是指以某种程序设计语言所编写的程序。目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。翻译程序是将某种语言翻译成另一种语言的程序的统称。编译程序与解释程序均为翻译程序,但二者工作方法不同。解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。即边解释边执行,翻译所得的指令序列并不保存。编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。即先翻译、
2、后执行。2 .解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。3 .解:C语言的关键字有:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatileWhileo上述关键字在C语言中均为保存字。4 .解:C语言中括号有三种:,口
3、,Oo其中,用于语句括号;口用于数组;O用于函数(定义与调用)及表达式运算(改变运算顺序)。C语言中无END关键字。逗号在C语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)的值为d)。5 .略第二章1.(1)答:26*26=676(2)答:26*10=260(3)答:a,b,c,.,z,a,al,.,a9,aa,.,az,.,zz,a00,al,.,zzz),共26+26*36+26*36*36=34658个2 ,构造产生以下语言的文法(1) anbnn20解:对应文法为G(三)=(S,a,b,Sf为aSb,S)(2) anbm
4、cpn,m,p0解:对应文法为G(三)=(S,X,Y,a,b,c,S-aSX,X-bXY,Y-cY,S)(3) an#bnn0Ucn#dnnO解:对应文法为G(三)=(S,X,Y,a,b,c,d,#,S-X,SY,XaXb,YcYd,S)(4) wttwrttIw?0,1*,Wr是W的逆序排列解:G(三)=(S,W,R,0,1,#,S-Wtt,WfoWOllW1|#),S)(5)任何不是以O打头的所有奇整数所组成的集合解:G(三)=(S,A,B,I,J,-,0,1,2,3,4,5,6,7,8,9,S-JIBJ,BOBIBe,IfJ2468,Jl3579,S)(6)所有偶数个0和偶数个1所组成的
5、符号串集合解:对应文法为SOAlBe,AOS1CBOC1SC-IAIoB3 .描述语言特点(1) SfloSoS-aAAfbAA-a解:本文法构成的语言集为:L(G)=(10)nabma0nn,m2。(2) SfSSSflAOAfIAOAf解:L(G)=InlOnlln20n2InmOnmnl,n2,nm0;且nl,n2,nm不全为零该语言特点是:产生的句子中,0、1个数相同,并且假设干相接的1后必然紧接数量相同连续的0。(3) SfIAS-BOAfIAAfCBfBOB-CCfICoCf解:本文法构成的语言集为:L(G)=lpln0np21,n20Ulnnqq21,n2,特点是具有IplnOn
6、或InOnOq形式,进一步,可知其具有形式InOmn,m0,且n+m0o(4) SfbAdCAfAGSGfAfa解:可知,S=baSndcn-0该语言特点是:产生的句子中,是以ba开头de结尾的串,且ba、de个数相同。(5) SfaSSSfa解:L(G)=a(2nT)InDD可知:奇数个a4 .解:此文法产生的语言是:以终结符al、a2-an为运算对象,以八、V、”为运算符,以、为分隔符的布尔表达式串5 .5.1解:由于此文法包含以下规则:-e,所以此文法是O型文法。5.2证明:略6.解:(1)最左推导:程序以分程序以标号:分程序TL:分程序TL:标号:分程序TL:L:分程序TL:L:无标号
7、分程序TL:L:分程序首部;复合尾部TL:L:分程序首部;说明;复合尾部TL:L:begin说明;说明;复合尾部TL:L:begind;说明;复合尾部TL:L:begind;d;复合尾部TL:L:begind;d;语句;复合尾部T L: L: begin d;T L: L: begin d;d; s; 复合尾部.d; s; 语句 endT L: L: begin d;d; s; s end最右推导:程序T分程序T标号:分程序TC标号:标号:分程序IX标号:标号:无标号分程序T标号:标号:分程序首部;复合尾部T标号:标号:分程序首部;语句;复合尾部T标号:标号:分程序首部;语句;语句;end以标
8、号:标号:分程序首部;语句;s;endTC标号:标号:分程序首部;s; s; endTa示号:标号:分程序首部;说明;s;s;endT标号:标号:分程序首部;d;s;s;endT标号:标号:begin说明;d;s;s;endT标号:标号:begind;d;s;s;endT标号:L:begind;d;s;s;endTL:L:begind;d;s;s;end(2)句子L:L:begind;d;s;send的相应语法树是:7.解:aacb是文法GS中的句子,相应语法树是:最右推导:S=aAcB=aAcb=aacb最左推导:S=acB=aacB=aacb(2) aabacbadcd不是文法GS中的句子
9、因为文法中的句子不可能以非终结符d结尾(3) aacbccb不是文法GS中的句子可知,aacbccb仅是文法GS的一个句型的一局部,而不是一个句子。(4) aacabcbcccaacdca不是文法GS中的句子因为终结符d后必然要跟终结符a,所以不可能出现de这样的句子。(5) aacabcbcccaacbca不是文法GS中的句子由(1)可知:aacb可归约为S,由文法的产生式规则可知,终结符C后不可能跟非终结符S,所以不可能出现CaaCb这样的句子。8 .证明:用归纳法于n,n=l时,结论显然成立。设n=k时,对于12.kT*b,存在Bi:i=l,2,.,k,iT*bi成立,现在设12.aka
10、k+lT*b,因文法是前后文无关的,所以aIa2.ak可推导出b的一个前缀b,ak+1可推导出b的一个后缀二b(不妨称为bk+1)。由归纳假设,对于b,存在Bi:i=l,2,.,k,b=BIB2Bk,使得aiT*bi成立,另外,我们有ak+lT*b(=bk+l)即n=k+l时亦成立。证毕。9 .证明:(1)用反证法。假设a首符号为终结符时,B的首符号为非终结符。即设:a=a;B=A且a=*B。由题意可知:a=aT-TAy=,由于文法是CFG,终结符a不可能被替换空串或非终结符,因此假设有误。得证;(2)同(1),假设:B的首符号为非终结符时,首符号为终结符。即设:=a;=A,且=aTTA=B,
11、与(1)同理,得证。10 .证明:因为存在句子:abc,它对应有两个语法树(或最右推导):STABTAbcTabcSTDCTDcTabc所以,本文法具有二义性。11 .解:(1)STABTAaSbTAacbTbAacbTbbAacbTbbaacb上面推导中,下划线局部为当前句型的句柄。对应的语法树为:全部的短语:第一个a(al)是句子bbaacb相对于非终结符A(Al)(产生式A?a)的短语(直接短语);blal是句子bbaacb相对于非终结符A2的短语;b2blal是句子bbaacb相对于非终结符A3的短语;C是句子bbaacb相对于非终结符Sl(产生式S?C)的短语(直接短语);a2cb3
12、是句子bbaacb相对于非终结符B的短语;b2blala2cb3是句子bbaacb相对于非终结符S2的短语;注:符号的下标是为了描述方便加上去的。(2)句子(b)a(a)(b)的最右推导:ST(AS)T(A(b)T(SaA)(b)T(Sa(a)(b)T(b)a(a)(b)相应的语法树是:(3)解:iii*i+t对应的语法树略。最右推导:ETT=F=FPTFEtTFET+tTFEF+tTFEP+tTFEi+tTFTi+TFTF*i+tTFTP*i+tTFTi*i+ITFFi*i+tTFPi*i+TFii*i+tTPii*i+tTiii*i+12 .证明:充分性:当前文法下的每一符号串仅有一个句柄
13、和一个句柄产生式T对当前符号串有唯一的最左归约T对每一步推导都有唯一的最右推导T有唯一的语法树。必要性:有唯一的语法树T对每一步推导都有唯一的最右推导T对当前符号串有唯一的最左归约T当前文法下的每一符号串仅有一个句柄和一个句柄产生式13 .化简以下各个文法解:SfbCACdAfCSAlcCCC-*cSc(2)解:S-aABIfAgA-edDAD-eAB-f(3)解:SfaC14 .消除以下文法中的产生式(1)解:SfaASIaSbA-cS(2)解:SfaAAIaa-bcbedede15 .消除以下文法中的无用产生式和单产生式(1)消除后的产生式如下:SfaBIBCB-DBIbC-bDfbIDB
14、(2)消除后的产生式如下:S-SISBIOI(三)ISAf()I(三)IISBdS(3)消除后的产生式如下:E-E+TIT*FI(E)IPtFIiTfT*FI(E)IPtFIiF-PfFI(E)IiP-(E)Ii第三章1 .从略2 .3假设W:表示载狐狸过河,G:表示载山羊过河,C:表示载白菜过河用到的状态L狐狸和山羊在左岸2:狐狸和白菜载左岸3:羊和白菜在左岸4:狐狸和山羊在右岸5:狐狸和白菜在右岸6:111羊和白菜在右岸F:全在右岸4证明:只须证明文法G:A-B或A-(A,BVN,VT+)等价于Gl:AfaB或Afa(aVT+)Gl的产生式中-aB,则B也有BfbC,CcD.所以有Aabc
15、B,a,b,cVT,B,VN所以与G等价。2)G的产生式AfaB,VT,因为a是字符串,所以肯定存在着一个终结符a,使AfaB可见两者等价,所以由此文法产生的语言是正规语言。56根据文法知其产生的语言是L=ambncim,n,i=1可以构造如下的文法VN=S,A,B,C,VT=a,b,c)P-SaA,AaA,AfbB,BfbB,BfCC,CfcC,Cfc其状态转换图如下:7(1)其对应的右线性文法是:A-OD,B-0A,B一IC,C11F,Cl0A,F-OOE11A,D-OB11C,E-ICOB(2)最短输入串Oll(3)任意接受的四个串011,0110,0011,000011(4)任意以1打
16、头的串.8从略。9(2)相应的3型文法(i) SaS-bSAfaAAfbBBfalaBBbbB(ii) SaAaSfbBBfaBbBAfaBAbbA(iii) SfaASfbBAfbAAfaCBfaBBfbCCfalaCCfblbC(iv) SfbSSfaAAfaCAfbBBfaBBfbCC-aaCCfblbC(3)用自然语言描述输入串的特征(D以任意个(包括0)b开头,中间有任意个(大于1)a,跟一个b,还可以有一个由a,b组成的任意字符串(ii)以a打头,后跟任意个(包括0)b(iii)以a打头,中间有任意个(包括0)b,再跟a,最后由一个a,b所组成的任意串结尾或者以b打头,中间有任意个
17、(包括0)a,再跟b,最后由一个a,b所组成的任意串结尾(iv)以任意个(包括0)b开头,中间跟aa最后由一个a,b所组成的任意串结尾或者以任意个(包括O)b开头,中间跟ab后再接任意(包括0)a再接b,最后由一个a,b所组成的任意串结尾10(1)Gl的状态转换图:G2的状态转换图:(2) Gl等价的左线性文法:SfBb,SfDd,D-C,B-Db,CBc,B-Ab,Bf,-aG2等价的右线性文法:SfdD,S-aB,DfC,B-abC,BfbB,BiA,Bf,CfCA,Afa(3)对Gl文法,abb的推导序列是:S=aA=abB=abb对Gl文法,abb的推导序列是:S=Bb=Abb=abb
18、对G2文法,aabca的推导序列是:S=Aa=Cca=Babca=aabca对G2文法,aabca的推导序列是:S-aB=aabC-aabcA=aabca(4)对串acbd来说,G1,G1,文法都不能产生。H将右线性文法化为左线性文法的算法:(1)对于G中每一个形如A-aB的产生式且A是开始符,将其变为B-a,否则假设A不是开始符,BfAa;(2)对于G中每一个形如A-a的产生式,将其变为SfAa12(1)ab*jSS,A).AA,B)B状态矩阵是:B4j记S=qOB=qlAB=q2SA=q3,最小化和确定化后如图(2)记S=qO,A=ql,BS=q2最小化和确定化后的状态转换图如下13(1)
19、将具有E动作的NFA确定化后,其状态转换图如图:记SO,Sl,S3)=qOSl=qlS2S3=q2S3=q3(2)记S=qOZ=qlUR=q2SX=q3YUR=q4XSU=q5YURZ=q6ZS=q714(1)从略(2)化简后SO和Sl作为一个状态,S5和S6作为一个状态。状态转换图如图15从略。16从略。(1)r*表示的正规式集是Jr,rr,r,(Ir)*表示的正规式集是,Ur,rr,rrr,=,r,rr,rrr,Irr*表示的正规式集是,r,rr,rrr,(r*)*=r*=,r,rr,rrr,所以四者是等价的。(2)(rs)*r表示的正规式集是,rs,rsrs,rsrsrs,r=r,rsr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 蒋立源 编译 原理 西北 工业大学 出版社 课后 答案

链接地址:https://www.desk33.com/p-910700.html