资源描述:
《编译原理课后答案(第三版 蒋立源 康慕宁编)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、编译原理课后答案(第三版蒋立源康慕宁编)第一章习题解答1解:源程序是指以某种程序设计语言所编写的程序。目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。翻译程序是将某种语言翻译成另一种语言的程序的统称。编译程序与解释程序均为翻译程序,但二者工作方法不同。解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。即边解释边执行,翻译所得的指令序列并不保存。编译程序的特点是先将高级语言程序翻译成机器语言程序,将
2、其保存到指定的空间中,在用户需要时再执行之。即先翻译、后执行。2解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。3解:C语言的关键字有:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilew
3、hile。上述关键字在C语言中均为保留字。4解:C语言中括号有三种:{},[],()。其中,{}用于语句括号;[]用于数组;()用于函数(定义与调用)及表达式运算(改变运算顺序)。C语言中无END关键字。逗号在C语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)的值为d)。5略第二章习题解答1.(1)答:26*26=676(2)答:26*10=260(3)答:{a,b,c,...,z,a0,a1,...,a9,aa,...,az,...,zz,a00,a01,...,zzz},共26+26*36+26
4、*36*36=34658个2.构造产生下列语言的文法(1){anbn
5、n≥0}解:对应文法为G(S)=({S},{a,b},{S→ε
6、aSb},S)(2){anbmcp
7、n,m,p≥0}解:对应文法为G(S)=({S,X,Y},{a,b,c},{S→aS
8、X,X→bX
9、Y,Y→cY
10、ε},S)(3){an#bn
11、n≥0}∪{cn#dn
12、n≥0}解:对应文法为G(S)=({S,X,Y},{a,b,c,d,#},{S→X,S→Y,X→aXb
13、#,Y→cYd
14、#},S)(4){w#wr#
15、w?{0,1}*,wr是w的逆序排列}解:G(S)=({S,W,R},{0,1,#
16、},{S→W#,W→0W0
17、1W1
18、#},S)(5)任何不是以0打头的所有奇整数所组成的集合解:G(S)=({S,A,B,I,J},{-,0,1,2,3,4,5,6,7,8,9},{S→J
19、IBJ,B→0B
20、IB
21、e,I→J
22、2
23、4
24、6
25、8,Jà1
26、3
27、5
28、7
29、9},S)(6)所有偶数个0和偶数个1所组成的符号串集合解:对应文法为S→0A
30、1B
31、e,A→0S
32、1CB→0C
33、1SC→1A
34、0B3.描述语言特点(1)S→10S0S→aAA→bAA→a解:本文法构成的语言集为:L(G)={(10)nabma0n
35、n,m≥0}。(2)S→SSS→1A0A→1A0A→ε解:
36、L(G)={1n10n11n20n2…1nm0nm
37、n1,n2,…,nm≥0;且n1,n2,…nm不全为零}该语言特点是:产生的句子中,0、1个数相同,并且若干相接的1后必然紧接数量相同连续的0。(3)S→1AS→B0A→1AA→CB→B0B→CC→1C0C→ε解:本文法构成的语言集为:L(G)={1p1n0n
38、p≥1,n≥0}∪{1n0n0q
39、q≥1,n≥0},特点是具有1p1n0n或1n0n0q形式,进一步,可知其具有形式1n0mn,m≥0,且n+m>0。(4)S→bAdcA→AGSG→εA→a解:可知,S=>…=>baSndcn≥0该语言特点是:产生的句子中
40、,是以ba开头dc结尾的串,且ba、dc个数相同。(5)S→aSSS→a解:L(G)={a(2n-1)
41、n≥1}可知:奇数个a4.解:此文法产生的语言是:以终结符a1、a2…an为运算对象,以∧、∨、~为运算符,以[、]为分隔符的布尔表达式串5.5.1解:由于此文法包含以下规则:AA→e,所以此文法是0型文法。5.2证明:略6.解:(1)最左推导:<程序>T<分程序>T<标号>:<分程序>TL:<分程序>TL:<标号>:<分程序>TL:L:<分程序>TL:L:<无标号分程序>TL:L:<分程序首部>;<复合尾部>TL:L:<分程序首部>;<说明>;<复合尾部>TL
42、:L:be