文档库 最新最全的文档下载
当前位置:文档库 › 编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 4 课后答案【khdaw_lxywyl】

编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 4 课后答案【khdaw_lxywyl】

编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 4 课后答案【khdaw_lxywyl】
编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 4 课后答案【khdaw_lxywyl】

编译原理课后习题答案(第三版)

精品文档 第二章 P36-6 (1) L G ()1是0~9组成的数字串 (2) 最左推导: N ND NDD NDDD DDDD DDD DD D N ND DD D N ND NDD DDD DD D ??????????????????0010120127334 556568 最右推导: N ND N ND N ND N D N ND N D N ND N ND N D ??????????????????77272712712701274434 886868568 P36-7 G(S) O N O D N S O AO A AD N →→→→→1357924680||||||||||| P36-8 文法: E T E T E T T F T F T F F E i →+-→→|||*|/()| 最左推导: E E T T T F T i T i T F i F F i i F i i i E T T F F F i F i E i E T i T T i F T i i T i i F i i i ?+?+?+?+?+?+?+?+??????+?+?+?+?+?+********()*()*()*()*()*()*() 最右推导: E E T E T F E T i E F i E i i T i i F i i i i i E T F T F F F E F E T F E F F E i F T i F F i F i i i i i ?+?+?+?+?+?+?+?+?????+?+?+?+?+?+?+**********()*()*()*()*()*()*()*() 语法树:/********************************

编译原理教程课后习题答案——第六章

第六章运行时存储空间组织 6.1 完成下列选择题: (1) 过程的DISPLAY表中记录了。 a. 过程的连接数据 b. 过程的嵌套层次 c. 过程的返回地址 d. 过程的入口地址 (2) 过程P1调用P2时,连接数据不包含。 a. 嵌套层次显示表 b. 老SP c. 返回地址 d. 全局DISPLAY地址 (3) 堆式动态分配申请和释放存储空间遵守原则。 a. 先请先放 b. 先请后放 c. 后请先放 d. 任意 (4) 栈式动态分配与管理在过程返回时应做的工作有。 a. 保护SP b. 恢复SP c. 保护TOP d. 恢复TOP (5) 如果活动记录中没有DISPLAY表,则说明。 a. 程序中不允许有递归定义的过程 b. 程序中不允许有嵌套定义的过程 c. 程序中既不允许有嵌套定义的过程,也不允许有递归定义的过程 d. 程序中允许有递归定义的过程,也允许有嵌套定义的过程 【解答】 (1) b (2) a (3) d (4) b (5) b 6.2 何谓嵌套过程语言运行时的DISPLAY表?它的作用是什么? 【解答】当过程定义允许嵌套时,一个过程在运行中应能够引用在静态定义时包围它的任一外层过程所定义的变量或数组。也就是说,在栈式动态存储分配方式下的运行中,一个过程Q可能引用它的任一外层过程P的最新活动记录中的某些数据。因此,过程Q运行时必须知道它的所有(静态)外层过程的最新活动记录的地址。由于允许递归和可变数组,这些外层过程的活动记录的位置也往往是变迁的。因此,必须设法跟踪每个(静态)外层的最新活动记录的位置,而完成这一功能的就是DISPLAY嵌套层次显示表。 也即,每当进入一个过程后,在建立它的活动记录区的同时也建立一张DISPLAY表,它自顶而下每个单元依次存放着现行层、直接外层等,直至最外层(主程序层)等每一层过程的最新活动记录的起始地址。 6.3 (1) 写出实现一般递归过程的活动记录结构以及过程调用、过程进入与过程返回的指令; (2) 对以return(表达式)形式(这个表达式本身是一个递归调用)返回函数值的特殊函数过程,给出不增加时间开销但能节省存储空间的实现方法。假定语言中过程参数只有传值和传地址两种形式,为便于理解,举下例说明这种特殊的函数调用: int gcd (int p,int q) { if (p % q ==0) return q; else return gcd (q, p % q) } 【解答】(1) 一般递归过程的活动记录如图6-1所示。

遗传学第二版课后题答案-刘祖洞

P42 第二章孟德尔定律 1、答:因为 (1)分离规律是生物界普遍存在的一种遗传现象,而显性现象的表现是相对的、有条件的;(2)只有遗传因子的分离和重组,才能表现出性状的显隐性。可以说无分离现象的存在,也就无显性现象的发生。 2、(1)RR×rr → Rr 红果色 (2)Rr×rr → 1/2Rr,1/2rr 1/2红果色,1/2黄果色 (3)Rr×Rr → 1/4RR,2/4Rr,1/4rr 3/4红果色,1/4黄果色 (4)Rr×RR → 1/2RR,1/2Rr 红果色 (5)rr×rr → rr 黄果色 3、(1)Rr × RR → R,r;R →1/2RR,1/2Rr 1/2红色,1/2粉红 (2)rr × Rr → r;R,r →1/2Rr,1/2rr 1/2粉红,1/2白色 (3)Rr × Rr → R,r;R,r →1/4RR,2/4Rr,1/4rr 1/4红色,2/4粉色,1/4白色 4、(1)WWDD×wwdd → WwDd 白色、盘状果实 (2)WwDd×wwdd → 1/4WwDd,1/4Wwdd,1/4wwDd,1/4wwdd, 1/4白色、盘状,1/4白色、球状,1/4黄色、盘状,1/4黄色、球状 (3)Wwdd×wwDd → 1/4WwDd,1/4Wwdd,1/4wwDd,1/4wwdd, 1/4白色、盘状,1/4白色、球状,1/4黄色、盘状,1/4黄色、球状 (4)Wwdd×WwDd → 1/8WWDd,1/8WWdd,2/8WwDd,2/8Wwdd,1/8wwDd,1/8wwdd 3/8 白色、盘状,3/8白色、球状,1/8黄色、盘状,1/8黄色、球状 5.(1)TTGgRr × ttGgrr: 即蔓茎绿豆荚圆种子3/8,蔓茎绿豆荚皱种子3/8,蔓茎黄豆荚圆种子1/8,蔓茎黄豆荚皱种子1/8。 (2)TtGgrr × ttGgrr: 即蔓茎绿豆荚皱种子3/8,蔓茎黄豆荚皱种子1/8,矮茎绿豆荚皱种子3/8,矮茎黄豆荚皱种子1/8。 6.解:题中F2分离比提示番茄叶形和茎色为孟德尔式遗传,F1的基因型为AaCc。所以对三种交配可作如下分析: (1) 紫茎马铃暮叶对F1的回交: AaCc×AAcc→1/4AACc,1/4AAcc,1/4AaCc,1/4Aacc 1/2紫茎缺刻叶:1/2紫茎马铃薯叶 (2) 绿茎缺刻叶对F1的回交: AaCc×aaCC→1/4AaCC,1/4AaCc,1/4aaCC,1/4aaCc 1/2紫茎缺刻叶:1/2绿茎缺刻叶 (3)双隐性植株对Fl测交: AaCc×aacc→1/4AaCc,1/4Aacc,1/4aaCc,1/4aacc 1/4紫茎缺刻叶:1/4紫茎马铃薯叶:1/4绿茎缺刻叶:1/4绿茎马铃薯叶 7.解:(1)AaCc×aaCc ,(2)AaCc×Aacc ,(3)AACc×aaCc,(4)AaCC×aacc,(5)

(完整版)编译原理课后习题答案

第一章 1.典型的编译程序在逻辑功能上由哪几部分组成? 答:编译程序主要由以下几个部分组成:词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成、错误处理、表格管理。 2. 实现编译程序的主要方法有哪些? 答:主要有:转换法、移植法、自展法、自动生成法。 3. 将用户使用高级语言编写的程序翻译为可直接执行的机器语言程序有哪几种主要的方式? 答:编译法、解释法。 4. 编译方式和解释方式的根本区别是什么? 答:编译方式:是将源程序经编译得到可执行文件后,就可脱离源程序和编译程序单独执行,所以编译方式的效率高,执行速度快; 解释方式:在执行时,必须源程序和解释程序同时参与才能运行,其不产生可执行程序文件,效率低,执行速度慢。

第二章 1.乔姆斯基文法体系中将文法分为哪几类?文法的分类同程序设计语言的设计与实现关 系如何? 答:1)0型文法、1型文法、2型文法、3型文法。 2) 2. 写一个文法,使其语言是偶整数的集合,每个偶整数不以0为前导。 答: Z→SME | B S→1|2|3|4|5|6|7|8|9 M→ε | D | MD D→0|S B→2|4|6|8 E→0|B 3. 设文法G为: N→ D|ND D→ 0|1|2|3|4|5|6|7|8|9 请给出句子123、301和75431的最右推导和最左推导。 答:N?ND?N3?ND3?N23?D23?123 N?ND?NDD?DDD?1DD?12D?123 N?ND?N1?ND1?N01?D01?301 N?ND?NDD?DDD?3DD?30D?301 N?ND?N1?ND1?N31?ND31?N431?ND431?N5431?D5431?75431 N?ND?NDD?NDDD?NDDDD?DDDDD?7DDDD?75DDD?754DD?7543D?75431 4. 证明文法S→iSeS|iS| i是二义性文法。 答:对于句型iiSeS存在两个不同的最左推导: S?iSeS?iiSes S?iS?iiSeS 所以该文法是二义性文法。 5. 给出描述下面语言的上下文无关文法。 (1)L1={a n b n c i |n>=1,i>=0 } (2)L2={a i b j|j>=i>=1} (3)L3={a n b m c m d n |m,n>=0} 答: (1)S→AB A→aAb | ab B→cB | ε (2)S→ASb |ab

编译原理

致谢: 2005级周朝丽、丛志环、张云华、周娇、陈亮、陶锌、张世强等同学不仅对讲义的进一步完善提出了宝贵的意见和建议,而且提出的许多富有探讨性的问题,不仅令我进一步思考,同时也令讲义的许多内容进一步丰富,在此,本人、现在已经看到、未来将会看到该讲义的人对各位的“答疑解惑”表示由衷的谢意! 参考书目: 1.编译原理,Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman著,李建中,姜守旭译。机械工 业出版社,2003 Compilers Principles, Techniques, and Tools(英文版名字) 2.编译原理及实践,(美)Kenneth C. Louden著,冯博琴等译。机械工业出版社,2000 Compiler Construction: Principles and Practice (英文版名字) 3.编译原理习题与解析(第2版)/伍春香编著-.--北京:清华大学出版社,2006 4.编译原理=Compiling Principle/周经野,张继福主编-.--武汉:武汉理工大学出版社,2003 5.程序设计语言编译方法. 肖军模编著. 大连理工大学出版社,2000。 6.程序设计语言编译原理/陈火旺等编.--北京:国防工业出版社,1984 7.编译方法/金成植编.--北京:高等教育出版社,1984 8.编译原理/蒋立源主编.--西安:西北工业大学出版社,1993.8 9.编译原理和技术/陈意云, 马万里编译.--安徽:中国科学技术大学出版社,1989.12 10.编译原理及其习题解答/何炎祥...[等]编著-.--武汉:武汉大学出版社,2004。 11.形式语言与自动机理论 12.FORTRAN语言程序设计,谭浩强、田淑清编著,高等教育出版社,1987年5月。 13.PASCAL程序设计,郗曼丽编著,陕西科学技术出版社。 14.讲义的一些部分来源于互联网上的多种资源,其链接难以一一提供,在此,谨向大家 致以真诚地敬意和诚挚的谢意,感谢大家通过互联网提供的极为有益的帮助和指导。 1

编译原理教程课后习题答案——第七章

第七章目标代码生成 7.1 对下列四元式序列生成目标代码: T=A-B S=C+D W=E-F U=W/T V=U*S 其中,V是基本块出口的活跃变量,R0和R1是可用寄存器。 【解答】简单代码生成算法依次对四元式进行翻译。我们以四元式T=a+b为例来说明其翻译过程。 汇编语言的加法指令代码形式为 ADD R, X 其中,ADD为加法指令;R为第一操作数,第一操作数必须为寄存器类型;X为第二操作数,它可以是寄存器类型,也可以是内存型的变量。ADD R,X指令的含意是:将第一操作数R与第二操作数相加后,再将累加结果存放到第一操作数所在的寄存器中。要完整地翻译出四元式T=a+b,则可能需要下面三条汇编指令: MOV R, a ADD R, b MOV T, R 第一条指令是将第一操作数a由内存取到寄存器R中;第二条指令完成加法运算;第三条指令将累加后的结果送回内存中的变量T。是否在翻译成目标代码时都必须生成这三条汇编指令呢?从目标代码生成的优化角度考虑,即为了使生成的目标代码更短以及充分利用寄存器,上面的三条指令中,第一条和第三条指令在某些情况下是不必要的。这是因为,如果下一个四元式紧接着需要引用操作数T,则第三条指令就不急于生成,可以推迟到以后适当的时机再生成。 此外,如果必须使用第一条指令,即第一操作数不在寄存器而是在内存中,且此时所有可用寄存器都已分配完毕,这时就要根据寄存器中所有变量的待用信息(也即引用点)来决定淘汰哪一个寄存器留给当前的四元式使用。寄存器的淘汰策略如下: (1) 如果某寄存器中的变量已无后续引用点且该变量是非活跃的,则可直接将该寄存器作为空闲寄存器使用。 (2) 如果所有寄存器中的变量在基本块内仍有引用点且都是活跃的,则将引用点最远的变量所占用寄存器中的值存放到内存与该变量对应的单元中,然后再将此寄存器分配给当前的指令使用。 因此,本题所给四元式序列生成的目标代码如下: MOV R0, A SUB R0, C /*R0=T*/ MOV R1, C ADD R1, D /*R1=S*/ MOV S, R1 /*S引用点较T引用点远,故将R1的值送内存单元S*/ MOV R1, E SUB R1, F /*R1=W*/ SUB R1, R0 /*R1=U*/ MUL R1, S /*R1=V*/ 7.2 假设可用的寄存器为R0和R1,且所有临时单元都是非活跃的,试将以下四元式基本

遗传学课后答案

一) 名词解释: 遗传学:研究生物遗传和变异的科学。 遗传:亲代与子代相似的现象。 变异:亲代与子代之间、子代个体之间存在的差异. (二)选择题: 1.1900年(2))规律的重新发现标志着遗传学的诞生。 (1)达尔文(2)孟德尔(3)拉马克(4)克里克 2.建立在细胞染色体的基因理论之上的遗传学称之(4) (1)分子遗传学(2)个体遗传学(3)群体遗传学(4)经典遗传学 3.遗传学中研究基因化学本质及性状表达的内容称( 1 )。 (1)分子遗传学(2)个体遗传学(3)群体遗传学(4)细胞遗传学 4.通常认为遗传学诞生于(3)年。 (1)1859 (2)1865 (3)1900 (4)1910 5.公认遗传学的奠基人是(3): (1)J·Lamarck (2)T·H·Morgan (3)G·J·Mendel (4)C·R·Darwin 6.公认细胞遗传学的奠基人是(2): (1)J·Lamarck (2)T·H·Morgan (3)G·J·Mendel (4)C·R·Darwin 1、有丝分裂和减数分裂的区别在哪里?从遗传学角度来看,这两种分裂各有什么意义?那么,无性生殖会发生分离吗?试加说明。 答:有丝分裂和减数分裂的区别列于下表: 有丝分裂的遗传意义: 首先:核内每个染色体,准确地复制分裂为二,为形成的两个子细胞在遗传组成上与母细胞完全一样提供了基础。其次,复制的各对染色体有规则而均匀地分配到两个子细胞的核中从而使两个子细胞与母细胞具有同样质量和数量的染色体。 减数分裂的遗传学意义: 首先,减数分裂后形成的四个子细胞,发育为雌性细胞或雄性细胞,各具有半数的染色(n)雌雄性细胞受精结合为合子,受精卵(合子),又恢复为全数的染色体2n。保证了亲代与子代间染色体数目的恒定性,为后代的正常发育和性状遗传提供了物质基础,保证了物种相对的稳定性。 其次,各对染色体中的两个成员在后期I分向两极是随机的,即一对染色体的分离与任何另一对染体的分离不发生关联,各个非同源染色体之间均可能自由组合在一个子细胞里,n对染色体,就可能有2n种自由组合方式。 例如,水稻n=12,其非同源染色体分离时的可能组合数为212 = 4096。各个子细胞之间在染色体组成上将可能出现多种多样的组合。 此外,同源染色体的非妹妹染色单体之间还可能出现各种方式的交换,这就更增加了这种差异的复杂性。为生物的变异提供了重要的物质基础。 2. 水稻的正常的孢子体组织,染色体数目是12对,问下列各组织染色体数是多少? 答:(1)胚乳:32;(2)花粉管的管核:12;(3)胚囊:12;(4)叶:24;(5)根端:24;(6)种子的胚:24;(7)颖片:24。 3. 用基因型Aabb的玉米花粉给基因型AaBb的玉米雌花授粉,你预期下一代胚乳的基因型是什么类型,比例为何? 答:胚乳是三倍体,是精子与两个极核结合的结果。预期下一代胚乳的基因型和比例为下列所示 4. 某生物有两对同源染色体,一对是中间着丝粒,另一对是端部着丝粒,以模式图方式画出:

编译原理_第三版_课后答案.docx

编译 原理 课后题答案 第二章 P36-6 (1) L ( G 1 ) 是 0~9 组成的数字串 (2) 最左推导 : N ND NDD NDDD DDDD 0DDD 01DD 012D 0127 N ND DD 3D 34 N ND NDD DDD 5DD 56D 568 最右推导 : N ND N 7 ND 7 N 27 ND 27 N 127 D127 0127 N ND N 4 D 4 34 N ND N 8 ND 8 N 68 D68 568 P36-7 G(S) O 1|3|5|7|9 N 2|4|6|8|O D 0|N S O| AO A AD | N P36-8 文法: E T| E T|E T T F |T * F |T / F F ( E)|i 最左推导 : E E T T T F T i T i T * F i F * F i i * F i i * i E T T * F F * F i * F i *( E ) i *( E T) i *( T T ) i *( F T ) i *( i T ) i *( i F ) i *( i i ) 最右推导 :

E E T E T * F E T * i E F * i E i * i T i * i F i * i i i * i E T F * T F * F F *( E) F *( E T) F *( E F ) F *( E i ) F *( T i ) F *( F i ) F *( i i ) i *( i i ) 语法树: /******************************** E E+T E+T F T F i F i i i+i+i *****************/ P36-9 句子 iiiei有两个语法树: S iSeS iSei iiSei iiiei S iS iiSeS iiSei iiiei E E E+T E-T T T*F E-T F F F i T F i i i F i i i-i-i i+i*i P36-10 /************** S TS | T T( S) | ( ) ***************/ P36-11 /*************** L1: S AC A aAb | ab C cC | L2:

编译原理课后答案

第二章 2.3叙述由下列正规式描述的语言 (a) 0(0|1)*0 在字母表{0, 1}上,以0开头和结尾的长度至少是2的01 串 (b) ((ε|0)1*)* 在字母表{0, 1}上,所有的01串,包括空串 (c) (0|1)*0(0|1)(0|1) 在字母表{0, 1}上,倒数第三位是0的01串 (d) 0*10*10*10* 在字母表{0, 1}上,含有3个1的01串 (e) (00|11)*((01|10)(00|11)*(01|10)(00|11)*)* 在字母表{0, 1}上,含有偶数个0和偶数个1的01串 2.4为下列语言写正规定义 C语言的注释,即以 /* 开始和以 */ 结束的任意字符串,但它的任何前缀(本身除外)不以 */ 结尾。 [解答] other → a | b | … other指除了*以外C语言中的其它字符 other1 → a | b | … other1指除了*和/以外C语言中的其它字符 comment → /* other* (* ** other1 other*)* ** */ (f) 由偶数个0和偶数个1构成的所有0和1的串。 [解答]由题目分析可知,一个符号串由0和1组成,则0和1的个数只能有四种情况: x 偶数个0和偶数个1(用状态0表示); x 偶数个0和奇数个1(用状态1表示); x 奇数个0和偶数个1(用状态2表示); x 奇数个0和奇数个1(用状态3表示);所以, x 状态0(偶数个0和偶数个1)读入1,则0和1的数目变为:偶数个0和奇数个1(状态1) x 状态0(偶数个0和偶数个1)读入0,则0和1的数目变为:奇数个0和偶数个1(状态2) x 状态1(偶数个0和奇数个1)读入1,则0和1的数目变为:偶数个0和偶数个1(状态0) x 状态1(偶数个0和奇数个1)读入0,则0和1的数目变为:奇数个0和奇数个1(状态3) x 状态2(奇数个0和偶数个1)读入1,则0和1的数目变为:奇数个0和奇数个1(状态3) x 状态2(奇数个0和偶数个1)读入0,则0和1的数目变为:偶数个0和偶数个1(状态0) x 状态3(奇数个0和奇数个1)读入1,则0和1的数目变为:奇数个0和偶数个1(状态2) x 状态3(奇数个0和奇数个1)读入0,则0和1的数目变为:偶数个0和奇数个1(状态1) 因为,所求为由偶数个0和偶数个1构成的所有0和1的串,故状态0既为初始状态又为终结状态,其状态转换图: 由此可以写出其正规文法为: S0 → 1S1 | 0S2 | ε S1 → 1S0 | 0S3 | 1 S2 → 1S3 | 0S0 | 0 S3 → 1S2 | 0S1 在不考虑S0 →ε产生式的情况下,可以将文法变形为: S0 = 1S1 + 0S2 S1 = 1S0 + 0S3 + 1 S2 = 1S3 + 0S0 + 0 S3 = 1S2 + 0S1 所以: S0 = (00|11) S0 + (01|10) S3 + 11 + 00 (1) S3 = (00|11) S3 + (01|10) S0 + 01 + 10 (2) 解(2)式得: S3 = (00|11)* ((01|10) S0 + (01|10)) 代入(1)式得: S0 = (00|11) S0 + (01|10) (00|11)*((01|10) S0 + (01|10)) + (00|11) => S0 = ((00|11) + (01|10) (00| 11)*(01|10))S0 + (01|10) (00|11)*(01|10) + (00|11) => S0 = ((00|11)|(01|10) (00|11)*(01|10))*((00|1

编译原理教程课后习题答案——第四章

第四章语义分析和中间代码生成 4.1 完成下列选择题: (1) 四元式之间的联系是通过实现的。 a. 指示器 b. 临时变量 c. 符号表 d. 程序变量 (2) 间接三元式表示法的优点为。 a. 采用间接码表,便于优化处理 b. 节省存储空间,不便于表的修改 c. 便于优化处理,节省存储空间 d. 节省存储空间,不便于优化处理 (3) 表达式(┐A∨B)∧(C∨D)的逆波兰表示为。 a. ┐AB∨∧CD∨ b. A┐B∨CD∨∧ c. AB∨┐CD∨∧ d. A┐B∨∧CD∨ (4) 有一语法制导翻译如下所示: S→bAb {print″1″} A→(B {print″2″} A→a {print″3″} B→Aa) {print″4″} 若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为。a. 32224441 b. 34242421 c. 12424243 d. 34442212 【解答】 (1) b (2) a (3) b (4) b 4.2 何谓“语法制导翻译”?试给出用语法制导翻译生成中间代码的要点,并用一简例予以说明。 【解答】语法制导翻译(SDTS)直观上说就是为每个产生式配上一个翻译子程序(称语义动作或语义子程序),并且在语法分析的同时执行这些子程序。也即在语法分析过程中,当一个产生式获得匹配(对于自上而下分析)或用于归约(对于自下而上分析)时,此产生式相应的语义子程序进入工作,完成既定的翻译任务。 用语法制导翻译(SDTS)生成中间代码的要点如下: (1) 按语法成分的实际处理顺序生成,即按语义要求生成中间代码。 (2) 注意地址返填问题。 (3) 不要遗漏必要的处理,如无条件跳转等。 例如下面的程序段: if (i>0) a=i+e-b*d; else a=0; 在生成中间代码时,条件“i>0”为假的转移地址无法确定,而要等到处理“else”时方可确定,这时就存在一个地址返填问题。此外,按语义要求,当处理完(i>0)后的语句(即“i>0”为真时执行的语句)时,则应转出当前的if语句,也即此时应加入一条无条件跳转指令,并且这个转移地址也需要待处理完else之后的语句后方可获得,就是说同样存在着地址返填问题。对于赋值语句a=i+e-b*d,其处理顺序(也即生成中间代码顺序)是先生成i+e的代码,再生成b*d的中间代码,最后才产生“-”运算的中间代码,这种顺序不能颠倒。 4.3 令S.val为文法G[S]生成的二进制数的值,例如对输入串101.101,则S.val= 5.625。按照语法制导翻译方法的思想,给出计算S.val的相应的语义规则,G(S)如下: G[S]: S→L.L|L

遗传学课后习题答案

9 核外遗传 1. 细胞质遗传有什么特点?它与母性影响有什么不同? 答:细胞质遗传不同于孟德尔遗传的特点:1、无论是正交还是反交,F1的表型总是与母本的一致;2、连续回交不会导致用作非轮回亲本的母本细胞质基因及其所控制的性状的消失,但其核遗传物质则按每回交一代减少一半的速度减少,直到被全部置换;3、非细胞器的细胞质颗粒中遗传物质的传递类似病毒的转导。 母性影响是指子代某一性状的表型由母体的核基因型决定,而不受本身基因型的支配,从而导致子代的表型和么ben相同的现象。其表现形式也是正反交结果不一致,不同之处在于由细胞质遗传决定的性状,表型是稳定的,可以一代一代地通过细胞质传下去,而母性影响有持久的,也有短暂的。(P225) 2. 一个基因型为Dd的椎实螺自体受精后,子代的基因型和表型分别如何?如果其子代个体也自体受精,它们的下一代的基因型和表型又如何? 答:椎实螺的显性基因为右旋D,隐性基因为d,受母性影响,基因型为Dd的椎实螺自体受精,亲本基因型均为右旋Dd,F1产生1DD右旋(基因型为右旋)、2Dd右旋(基因型为右旋)、1dd 右旋(基因型为左旋);F1的DD自体受精产生的子代均为DD右旋(基因型为右旋),F1的Dd自体受精产生的子代为1DD右旋(基因型为右旋)、2Dd右旋(基因型为右旋)、1dd右旋(基因型为左旋),F1的dd自体受精产生的子代均为dd左旋(基因型为左旋)。(P226图) 3. 正交和反交的结果不同可能是因为:①细胞质遗传,②性连锁,和③母性影响。怎样用实验方法来确定它属于哪一种类型? 答:细胞质遗传和母性影响正反交结果不同,且F1子代与母本的表型一致;而性连锁虽然正反交结果不同,但F1子代有与父本表型一致的。母性影响虽然看起来很想细胞质遗传,但其实质是细胞核基因作用的结果,一代以上的杂交可以获得性状是否属于细胞质遗传的结论。 4. 衣藻的细胞质和细胞核中都可能存在链霉素抗性因子。如果将一个链霉素抗性突变品系与对链霉素敏感的品系杂交,(1)如果抗性品系是mt+,敏感品系是mt-,结果将会怎样?(2)如果做的是反交,结果又怎样? 答:(1)如果链霉素抗性因子的存在于细胞核,则杂交后代一半表现为抗性,一半无抗性。如果链霉素抗性因子的存在于细胞质,则杂交后代均表现为抗性。(2)如果链霉素抗性因子的存在于细胞核,则杂交后代一半表现为抗性,一半无抗性。如果链霉素抗性因子的存在于细胞质,则杂交后代均表现为无抗性。

编译原理课后习题答案

第1 章 1、编译过程包括哪几个主要阶段及每个 阶段的功能。 答案:编译过程包括词法分析、语法分析、语义分析和中间代码生成、优化、目标代码生成5 个阶段。词法分析的功能是对输入的高级语言源程序进行词法分析,识别其中的单词符号,确定它们的种类,交给语法分析器,即把字符串形式的源程序分解为单词符号串形式。语法分析的功能是在词法分析结果的基础上,运用语言的语法规则,对程序进行语法分析,识别构成程序的各类语法范畴及它们之间的层次关系,并把这种层次关系表达成语法树的形式。词义分析和中间代码生成的功能是在语法分析的基础上,对程序进行语义分析,“理解”其含义,产生出表达程序语义的内部表达形式(中间代码)。优化的功能是按照等价变换的原则,对语义分析器产生的中间代码序列进行等价变换,删除其中多余的操作,对耗时耗空间的代码进行优化,以期最后得到高效的可执行代码。目标代码生成的功能是把优化后的中间代码变换成机器指令代码,得到可在目标机器上执行的机器语言程序。 第2 章 1、写一上下文无关文法G,它能产生配 对的圆括号串(如:(),(()),()(())等,甚至 包括0 对括号) 文法为:S→(L)|LS|L L→S| ε 2 、已知文法G :E→E+T|E-T|T T→T*F|T/F|F F→(E) |i (1)给出i+i*i,i*(i-i)的最左推导,最右推导以及语法树。 (2)i-i+i 哪个算符优先。 【解答】 (1)最左推导:E?E+T?T+T? F+T ? i+T ? i+T*F ? i+F*F ?i+i*F ?i+i*i E?T?T*F? F*F ? i*F ? i*(E) ? i*(E-T) ? i*(T-T) ? i*(F-T) ? i*(i-T) ? i*(i-F) ?i*(i-i) 最右推导:E?E+T?E+T*F? E+T*i ? E+F*i ? E+i*i ? T+i*i ? F+i*i ? i+i*i E?T?T*F? T*(E) ? T*(E-T) ? T*(E-F) ? T*(E-i) ? T*(T-i) ? T*(F-i) ?T*(i-i) ? F*(i-i) ?i*(i-i) i+i*i 以及i*(i-i)的语法树如下所示: (2)i-i+i 的语法树如下图所示。 从上图的语法树可知:“-”的位置位 于“+”的下层,也就是前面两个i 先进 行“-”运算,再与后面的i 进行“+” 运算,所以“-”的优先级高于“+”的 优先级。 3 、文法G: E→ET+|T T→TF*|F F→FP↑|P P→E|i (1)试证明符号串TET+*i↑是G 的一 个句型(要求画出语法树). (2)写出该句型的所有短语,直接短语和句柄. 【解答】(1)采用最右推导: E?T?F? FP↑? Fi↑? Pi↑? Ei↑ ? Ti↑? TF*i↑? TP*i↑? TE*i↑? TET+*i↑ 语法树如下图所示。 从文法G 的起始符号出发,能够推导 出符号串TET+*i↑,所以给定符号串是文法G的句型。 (2) 该句型的短语有: ET+,TET+*,i ,TET+*i↑ 直接短语有:ET+, i 句柄是:ET+ 4、已知文法G:S→iSeS|iS|i ,该文法 是二义文法吗?为什么? 【解答】该文法是二义文法。 因为对于句子iiiei 存在两种不同的最 左推导: 第 1 种推导:S? iSeS? iiSeS? iiieS? iiiei 第2种推导:S?iS?iiSeS?iiieS?iiiei 第3 章 1、用正规式描述下列正规集: (1)C 语言的十六进制整数; (2)以ex 开始或以ex 结束的所有小写字母构成的符号串; (3)十进制的偶数。 【解答】 (1)C 语言十六进制整数以0x 或者0X 开头,所以一般形式应该为(+|-|ε) (0x|0X)AA*,其中前面括号表示符号, 可以有正号、负号,也可以省略(用ε表示)默认是正数,A 表示有资格出现在十六进制整数数位上的数字,AA*表示一位或者多位(一个或者多个数字的

遗传学课后答案

第四章连锁遗传和性连锁 1.试述交换值、连锁强度和基因之间距离三者的关系。 答:交换值是指同源染色体的非姐妹染色单体间有关基因的染色体片段发生交换的频 率,或等于交换型配子占总配子数的百分率。交换值的幅度经常变动在0~50%之间。交换值越接近0%,说明连锁强度越大,两个连锁的非等位基因之间发生交换的孢母细胞 数越少。当交换值越接近50%,连锁强度越小,两个连锁的非等位基因之间发生交换的孢母细胞数越多。由于交换值具有相对的稳定性,所以通常以这个数值表示两个基因在同一染色体上的相对距离,或称遗传距离。交换值越大,连锁基因间的距离越远;交换值越小,连锁基因间的距离越近。 2.在大麦中,带壳(N)对裸粒(n)、散穗(L)对密穗(l)为显性。今以带壳、散穗与 裸粒、密穗的纯种杂交,F1表现如何?让F1与双隐纯合体测交,其后代为: 带壳、散穗201株裸粒、散穗18株 带壳、密穗20株裸粒、密穗203株 试问,这2对基因是否连锁?交换值是多少?要使F2出现纯合的裸粒散穗20株,至少应中多少株? 答:F1表现为带壳散穗(NnLl)。 测交后代不符合1:1:1:1的分离比例,亲本组合数目多,而重组类型数目少,所以这两对基因为不完全连锁。 交换值%=((18+20)/(201+18+20+203))×100%=8.6% F1的两种重组配子Nl和nL各为8.6%/2=4.3%,亲本型配子NL和nl各为(1-8.6%)/2=45.7%; 在F2群体中出现纯合类型nnLL基因型的比例为: 4.3%×4.3%=18.49/10000, 因此,根据方程18.49/10000=20/X计算出,X=10817,故要使F2出现纯合的裸粒散穗20株,至少应种10817株。 3.在杂合体ABy/abY,a和b之间的交换值为6%,b和y之间的交换值为10%。在没有 干扰的条件下,这个杂合体自交,能产生几种类型的配子;在符合系数为0.26时,配子的比例如何? 答:这个杂合体自交,能产生ABy、abY、aBy、AbY、ABY、aby、Aby、aBY8种类型 的配子。 在符合系数为0.26时,其实际双交换值为:0.26×0.06×0.1×100=0.156%,故其配子的比例为:ABy42.078:abY42.078:aBy2.922:AbY2.922:ABY4.922:aby4.922:Aby0.078:aBY0.078。 3.设某植物的3个基因t、h、f依次位于同一染色体上,已知t-h相距14cM,现有如下杂 交:+++/thf×thf/thf。问:①符合系数为1时,后代基因型为thf/thf的比例是多少?②符合系数为0时,后代基因型为thf/thf的比例是多少? 答:①1/8②1/2 5.a、b、c3个基因都位于同一染色体上,让其杂合体与纯隐性亲本测交,得到下列结果: +++74 ++c382 +b+3 +bc98 a++106

编译原理课后习题答案(陈火旺+第三版)

第二章 P36-6 (1) L G ()1是0~9组成的数字串 (2) 最左推导: N ND NDD NDDD DDDD DDD DD D N ND DD D N ND NDD DDD DD D ??????????????????0010120127334 556568 最右推导: N ND N ND N ND N D N ND N D N ND N ND N D ??????????????????77272712712701274434 886868568 P36-7 G(S) O N O D N S O AO A AD N →→→→→1357924680||||||||||| P36-8 文法: E T E T E T T F T F T F F E i →+-→→|||*|/()| 最左推导: E E T T T F T i T i T F i F F i i F i i i E T T F F F i F i E i E T i T T i F T i i T i i F i i i ?+?+?+?+?+?+?+?+??????+?+?+?+?+?+********()*()*()*()*()*()*() 最右推导: E E T E T F E T i E F i E i i T i i F i i i i i E T F T F F F E F E T F E F F E i F T i F F i F i i i i i ?+?+?+?+?+?+?+?+?????+?+?+?+?+?+?+**********()*()*()*()*()*()*()*() 语法树:/********************************

刘祖洞_遗传学_第二版_课后答案

第二章孟德尔定律 1、为什么分离现象比显、隐性现象有更重要的意义? 答:这是因为: (1)性状的分离规律是生物界普遍存在的一种遗传现象,而显性现象的表现是相对的、有条件的; (2)只有基因发生分离和重组,才能表现出性状的显隐性。可以说无分离现象的存在,也就无显性现象的发生。 2、在番茄中,红果色(R)对黄果色(r)是显性,问下列杂交可以产生哪些基因型,哪些表现型,它们的比例如何? (1)RR×rr(2)Rr×rr(3)Rr×Rr(4)Rr×RR(5)rr×rr 解: 3、下面是紫茉莉的几组杂交,基因型和表型已写明。问它们产生哪些配子?杂种后代的基因型和表型怎样? (1)Rr × RR(2)rr × Rr(3)Rr × Rr 粉红红色白色粉红粉红粉红 解: 4、在南瓜中,果实的白色(W)对黄色(w)是显性,果实盘状(D)对球状(d)是显性,这两对基因是自由组合的。问下列杂交可以产生哪些基因型,哪些表型,它们的比例如何? (1)WWDD×wwdd(2)XwDd×wwdd (3)Wwdd×wwDd(4)Wwdd×WwDd 解:

2 WwDd×wwdd 1/4WwDd,1/4Wwdd, 1/4wwDd,1/4wwdd,1/4白色、盘状,1/4白色、球状,1/4黄色、盘状,1/4黄色、球状 2 wwDd×wwdd 1/2wwDd,1/2wwdd 1/2黄色、盘状,1/2黄色、球状 3 Wwdd×wwDd 1/4WwDd,1/4Wwdd, 1/4wwDd,1/4wwdd,1/4白色、盘状,1/4白色、球状,1/4黄色、盘状,1/4黄色、球状 4 Wwdd×WwDd 1/8WWDd,1/8WWdd, 2/8WwDd,2/8Wwdd,1/8wwDd,1/8wwdd 3/8白色、盘状,3/8白色、球状,1/8黄色、盘状,1/8黄色、球状 5.在豌豆中,蔓茎(T)对矮茎(t)是显性,绿豆荚(G)对黄豆荚(g)是显性,圆种子(R)对皱种子(r)是显性。现在有下列两种杂交组合,问它们后代的表型如何? (1)TTGgRr×ttGgrr (2)TtGgrr×ttGgrr 解:杂交组合TTGgRr × ttGgrr: 即蔓茎绿豆荚圆种子3/8,蔓茎绿豆荚皱种子3/8,蔓茎黄豆荚圆种子1/8,蔓茎黄豆荚皱种子1/8。 杂交组合TtGgrr ×ttGgrr:

编译原理(清华大学 第2版)课后习题答案

第三章 N=>D=> {0,1,2,3,4,5,6,7,8,9} N=>ND=>NDD L={a |a(0|1|3..|9)n且 n>=1} (0|1|3..|9)n且 n>=1 {ab,} a n b n n>=1 第6题. (1) <表达式> => <项> => <因子> => i (2) <表达式> => <项> => <因子> => (<表达式>) => (<项>) => (<因子>)=>(i) (3) <表达式> => <项> => <项>*<因子> => <因子>*<因子> =i*i (4) <表达式> => <表达式> + <项> => <项>+<项> => <项>*<因子>+<项> => <因子>*<因子>+<项> => <因子>*<因子>+<因子> = i*i+i (5) <表达式> => <表达式>+<项>=><项>+<项> => <因子>+<项>=i+<项> => i+<因子> => i+(<表达式>) => i+(<表达式>+<项>) => i+(<因子>+<因子>) => i+(i+i) (6) <表达式> => <表达式>+<项> => <项>+<项> => <因子>+<项> => i+<项> => i+<项>*<因子> => i+<因子>*<因子> = i+i*i 第7题

第9题 语法树 s s s* s s+a a a 推导: S=>SS*=>SS+S*=>aa+a* 11. 推导:E=>E+T=>E+T*F 语法树: E +T * 短语: T*F E+T*F 直接短语: T*F 句柄: T*F 12.

短语: 直接短语: 句柄: 13.(1)最左推导:S => ABS => aBS =>aSBBS => aBBS => abBS => abbS => abbAa => abbaa 最右推导:S => ABS => ABAa => ABaa => ASBBaa => ASBbaa => ASbbaa => Abbaa => a1b1b2a2a3 (2) 文法:S → ABS S → Aa S →ε A → a B → b (3) 短语:a1 , b1 , b2, a2 , , bb , aa , abbaa, 直接短语: a1 , b1 , b2, a2 , , 句柄:a1 14 (1) S → AB A → aAb | ε B → aBb | ε (2) S → 1S0 S → A A → 0A1 |ε 第四章 1. 1. 构造下列正规式相应的DFA (1)1(0|1)*101 NFA (2) 1(1010*|1(010)*1)*0 NFA

清华大学编译原理第二版课后习答案

Lw.《编译原理》课后习题答案第一章 第 1 章引论 第 1 题 解释下列术语: (1)编译程序 (2)源程序 (3)目标程序 (4)编译程序的前端 (5)后端 (6)遍 答案: (1)编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。 (2)源程序:源语言编写的程序称为源程序。 (3)目标程序:目标语言书写的程序称为目标程序。 (4)编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶 段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符 号表管理等工作。 (5)后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。 (6)遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。 第 2 题 一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程 序的总体结构图。 答案: 一个典型的编译程序通常包含 8 个组成部分,它们是词法分析程序、语法分析程序、语 义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。其各部分的主要功能简述如下。 词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。 语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。 中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式 的中间语言代码,如三元式或四元式。 中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。 盛威网(https://www.wendangku.net/doc/b016695027.html,)专业的计算机学习网站1 《编译原理》课后习题答案第一章 目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。 表格管理程序:负责建立、填写和查找等一系列表格工作。表格的作用是记录源程序的 各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从表格中读取,产生的中间结果都记录在相应的表格中。可以说整个编译过程就是造表、查表的工作过程。需要指出的是,这里的“表格管理程序”并不意味着它就是一个独立的表格管理模块,而是指编译程序具有的表格管理功能。

相关文档
相关文档 最新文档