编译原理第三版课后答案王生原_第1页
编译原理第三版课后答案王生原_第2页
编译原理第三版课后答案王生原_第3页
编译原理第三版课后答案王生原_第4页
编译原理第三版课后答案王生原_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译原理第三版课后答案王生原 编译原理第三版课后答案王生原 【篇一:编译原理课后答案(第三版 蒋立源 康慕宁编)】 class=txt第一章 习题解答 1解:源程序是指以某种程序设计语言所编写的程序。目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。翻译程序是将某种语言翻译成另一种语言的程序的统称。编译程序与解释程序均为翻译程序,但二者工作方法不同。解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。即边解释边执行,翻译所得的指令

2、序列并不保存。编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。即先翻译、后执行。 2解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。 3解:c语言的关键字有:auto break case char constcontinue default do double else enum extern float for goto if int long register return short signed sizeof static s

3、truct switch typedef union unsigned void volatile while。上述关键字在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,

4、a01,.,zzz,共26+26*36+26*36*36=*个 2.构造产生下列语言的文法 (1)anbn|n0 (2)anbmcp|n,m,p0 (3)an # bn|n0cn # dn|n0 解:对应文法为g(s) = (s,x,y,a,b,c,d,#, sx, sy,xaxb|#,ycyd|# ,s) (4)w#wr# | w?0,1*,wr是w的逆序排列 解:g(s) = (s,w,r,0,1,#, sw#, w0w0|1w1|# ,s) (5)任何不是以0打头的所有奇整数所组成的集合 (6)所有偶数个0和偶数个1所组成的符号串集合 解:对应文法为 s0a|1b|e,a0s|1c b0

5、c|1s c1a|0b 3.描述语言特点 (1)s10s0saaabaaa 解:本文法构成的语言集为:l(g)=(10)nabma0n|n, m0。 解:l(g)=1n10n11n20n2 ? 1nm0nm |n1,n2,?,nm0;且 n1,n2,?nm不全为零该语言特点是:产生的句子中,0、1个数相同,并且若干相接的1后必然紧接数量相同连续的0。 解:本文法构成的语言集为: l(g)=1p1n0n|p1,n01n0n0q|q1,n0,特点是具有1p1n0n 或1n0n0q形式,进一步,可知其具有形式1n0mn,m0,且n+m0。 解:可知,s=?=basndc n0 该语言特点是:产生的句

6、子中,是以ba开头dc结尾的串,且ba、dc个数相同。 (5)sasssa 解:l(g)=a(2n-1)|n1可知:奇数个a 4.解:此文法产生的语言是:以终结符a1 、a2 ?an 为运算对象,以、为运算符, 以、为分隔符的布尔表达式串 5.5.1解:由于此文法包含以下规则:aae,所以此文法是0型文法。 5.2证明:略 6.解: (1)最左推导: 程序t分程序t标号:分程序tl:分程序 tl:标号:分程序 t l:l:分程序 t l:l:无标号分程序 t l:l:分程序首部;复合尾部 t l:l:分程序首部;说明;复合尾部 t l:l:begin说明;说明;复合尾部 t l:l:begin

7、 d;说明;复合尾部 t l:l:begin d;d;复合尾部 t l:l:begin d;d;语句;复合尾部 t l:l:begin d;d;s;复合尾部. t l:l:begin d;d;s;语句 end t l:l:begin d;d;s;s end 最右推导: 程序t分程序t标号:分程序 t标号:标号:分程序 t标号:标号:无标号分程序 t标号:标号:分程序首部;复合尾部 t标号:标号:分程序首部;语句;复合尾部 t标号:标号:分程序首部;语句;语句;end t标号:标号:分程序首部;语句;s;end t标号:标号:分程序首部;s;s;end t标号:标号:分程序首部;说明;s;s;e

8、nd t标号:标号:分程序首部;d;s;s;end t标号:标号:begin 说明;d;s;s;end t标号:标号:begin d;d;s;s;end t标号: l:begin d;d;s;s;end tl:l:begin d;d;s;s;end (2)句子l:l:begin d;d;s;s end的相应语法树是: 7.解: aacb是文法gs中的句子,相应语法树是: 最右推导:s=aacb=aacb=aacb 最左推导:s=aacb=aacb=aacb (2)aabacbadcd不是文法gs中的句子 因为文法中的句子不可能以非终结符d结尾 (3)aacbccb不是文法gs中的句子 可知,a

9、acbccb仅是文法gs的一个句型的一部分,而不是一个句子。 (4)aacabcbcccaacdca不是文法gs中的句子 因为终结符d后必然要跟终结符a,所以不可能出现?dc?这样的句子。 (5)aacabcbcccaacbca不是文法gs中的句子 由(1)可知:aacb可归约为s,由文法的产生式规则可知,终结符c后不可能跟非终结符s,所以不可能出现?caacb?这样的句子。 10.证明:因为存在句子:abc,它对应有两个语法树(或最右推导): stabtabctabc stdctdctabc 所以,本文法具有二义性。 11.解: (1) stabtaasbtaacbtbaacbtbbaacb

10、tbbaacb 上面推导中,下划线部分为当前句型的句柄。对应的语法树为: 【篇二:编译原理第三版课后习题答案】 . 2 p36-7 . 2 p36-8 . 2 p36-9 . 3 p36-10 . 3 p36-11 . 3 p64 7 . 4 p64 8 . 5 p64 12 . 5 p64 14 . 7 p81 1 . 8 p81 2 . 9 p81 3 . 12 p133 1 . 12 p133 2 . 12 p133 3 . 14 p134 5 . 15 p164 5 . 19 p164 7 . 19 p217 1 . 19 p217 3 . 20 p218 4 . 20 p218 5 . 21 p218 6 .

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论