蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx

上传人:王** 文档编号:789221 上传时间:2024-01-14 格式:DOCX 页数:84 大小:246.04KB
下载 相关 举报
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第1页
第1页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第2页
第2页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第3页
第3页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第4页
第4页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第5页
第5页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第6页
第6页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第7页
第7页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第8页
第8页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第9页
第9页 / 共84页
蒋立源《编译原理》西北工业大学出版社第3版课后答案.docx_第10页
第10页 / 共84页
亲,该文档总共84页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《蒋立源《编译原理》西北工业大学出版社第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.所以有AabcB,a,b,cVT,B,VN所以与G等价。2)G的产生式AfaB,VT,因为a是字符串,所以肯定存在着一个终结符a,使AfaB可见两

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!