编译原理》第十二章习题答案下载

第12章代码生成
第1题
一个编译程序的代码生成要着重考虑哪些问题?
答案:
代码生成器的设计要着重考虑目标代码的质量问题,而衡量目标代码的质量主要从占用空间和执行效率两个方面综合考虑。

附加题
问题1:
决定目标代码的因素有哪些?
答案:
决定目标代码的因素主要取决于具体的机器结构、指令格式、字长及寄存器的个数和种类,并与指令的语义和所用操作系统、存储管理等都密切相关。

又由于目标代码的执行效率在很大程度上依赖于寄存器的使用,所以目标代码与寄存器的分配算法也有关。

问题2:
为什么在代码生成时要考虑充分利用寄存器?
答案:
因为当变量值存在寄存器时,引用的变量值可直接从寄存器中取,减少对内存的存取次数,这样便可提高运行速度。

因此如何充分利用寄存器是提高目标代码运行效率的重要途径。

问题3:
寄存器分配的原则是什么?
答案:
寄存器分配的原则是:
(1) 当生成某变量的目标代码时,尽量让变量的值或计算结果保留在寄存器中,直到寄存器不够分配时为止。

(2) 当到基本块出口时,将变量的值存放在内存中,因为一个基本块可能有多个后继结点或多个前驱结点,同一个变量名在不同前驱结点的基本块内出口前存放的R可能不同,或没有定值,所以应在出口前把寄存器的内容放在内存中,这样从基本块外入口的变量值都在内存中。

(3) 对于在一个基本块内后边不再被引用的变量所占用的寄存器应尽早释放,以提高寄存器的利用效率。

对基本块的划分可按基本块的划分算法(见11.2.1)在生成四元式的目标代码时进行,以区分基本块的入口和出口。

合集下载

大学教材课后习题答案免费下载链接下部

大学教材课后习题答案免费下载链接下部

大学教材课后习题答案免费下载链接(上中下)190-290本资料由上网购返利网分享汽车理论习题答案(考研_作业).pdf→→/s/1zobam汽车理论第五版_课后习题答案(正确).pdf→→/s/1o67DaHk波动习题答案.pdf→→/s/1pJDGFyj泵与风机课后习题答案.pdf→→/s/1gdBph3H 流体力学习题解答李晓燕吴邦喜.pdf→→/s/1qWM2gAo液压与气压传动习题答案.pdf→→/s/1bnksUmV物理化学第五版习题解答(上下册).pdf→→/s/1sjvvFPj物理学教程第二版马文蔚下册课后答案完整版_cropped.pdf→→/s/1sj98Mct物理学第五版上册习题答案.pdf→→/s/1jG1F9NS王勖成《有限单元法》1-5章课后习题答案.pdf→→/s/1nt8vc3B理论力学教程_第三版_周衍柏_课后习题答案_总汇(1).pdf→→理论力学教程_第三版_周衍柏_课后习题答案_总汇.pdf→→/s/1eQABmxW电力系统分析课后习题答案.pdf→→/s/1bngpktD电动力学习题答案chapter5.pdf→→/s/1pJ7AZ5x电子商务法律与法规综合复习题与答案.pdf→→/s/1c0nEFUo电子测量技术基础课后习题答案上1,2,5,6,7,8.pdf→→/s/1hq3f7Is电子线路习题答案梁明理版.pdf→→/s/1bn5rEIr电工学简明教程(第二版)学习辅导与习题解答.pdf→→/s/1mgHQ6xi电机与拖动基础第三版李发海答案(全).pdf→→/s/1dD25KyP电气测试技术第三版_课后习题答案%28林德杰%29.pdf→→/s/1jGwVRE2电磁场与电磁波习题答案 (6).pdf→→/s/1bnrK3pX电磁场与电磁波习题答案 (7).pdf→→电磁场与电磁波习题答案 (8).pdf→→/s/1mgLUqCC电磁场与电磁波习题答案 .pdf→→/s/1hqsqmX2电磁场与电磁波习题答案2.pdf→→/s/1pJDGF0n电路(第五版)_课后习题答案(全)].邱关源_罗先觉_高等教育出版社.pdf→→/s/1sjtZPBR电路与电子学模拟复习题答案.pdf→→/s/1pJvzN6r电路第五版课后习题答案上册.pdf→→/s/1jG3bA30电路第五版课后习题答案下册.pdf→→/s/1jGn22Ke病理学试题库及答案.pdf→→/s/1hqp80wW 看完包过江苏材料员习题和答案——本人亲自考过.pdf→→/s/1qWyL8IS离散数学课后习题答案_屈婉玲(高等教育出版社).pdf→→/s/1gdghe9t算法导论课后习题与思考题答案合集.pdf→→/s/1pJqaiQf粤教版高中物理必修一课后习题答案(1~4章).pdf→→/s/1gdoU5qF线性代数习题册答案(理).pdf→→/s/1dD5n9ZV线性代数习题解答.pdf→→/s/1i3JY7PV线性规划习题答案.pdf→→/s/1hqiMQ00组合数学课后习题答案.pdf→→/s/1hqwuajE 组合逻辑电路课后习题答案.pdf→→/s/1bnnaNwF经典国外教材atkins物理化学第七版课后习题答案.pdf→→/s/1i39jobj经济学原理习题解答第五版%28微观、宏观).pdf→→/s/1sjm8rKT经济应用数学(三)概率论与数理统计修订版(袁荫棠编)习题答案.pdf →→/s/1ntsgiBR结构力学上龙驭求包世华课后习题答案.pdf→→/s/1eQiQVAU结构力学答案(全).pdf→→/s/1qW2Pud2结构力学课后习题答案.pdf→→/s/1kTKA1sN 结构力学龙驭球习题解答(ch2~ch3).pdf→→/s/1eQ676WM结构化学基础第四版习题答案.pdf→→/s/1jGkKEDw罗默《高级宏观经济学》课后习题答案中文版(金圣才主编).pdf→→/s/1c0h9fxe考研数学一历年真题答案(2002-2011).pdf→→/s/1qWoCltU胡寿松《自动控制原理》(第四版)课件_习题答案.pdf→→/s/1o6qcjqy自动控制原理习题解答(第二版)(余成波_张莲_胡.pdf→→/s/1pJsHZ0R自动控制原理习题解答.pdf→→/s/1bn3VJPH 船舶结构力学—课后习题答案.pdf→→/s/1lBC6西安理工大学_供电技术习题答案_机械工业出版社_第四版.pdf→→/s/1kTyVJSz西方经济学简明教程(第七版)习题参考答案.pdf→→/s/1bnmuORd计算机组成原理习题答案.pdf→→/s/1pJAYQQv计算机组成原理课后习题答案.pdf→→/s/1o68tfcA计算机编译原理课后习题答案第三版张幸儿.pdf→→/s/1eQikYlW计算机网络(第4版)习题答案(中文版).pdf→→/s/1dDcNuTj计算机网络(第五版)习题答案_谢希仁.pdf→→/s/1dDmWLJb计算机网络第四版习题答案(第五版上的很多题在这都能找到答案).pdf→→/s/1qWnqs0G计量经济学习题与解答于俊年主编对外经济贸易大学出版社.pdf→→/s/1i3hyUTv证券交易习题大全与答案.pdf→→/s/1o6NSibo证券投资基金章节习题及答案.pdf→→/s/1mgFiKWS课后习题答案(叶见曙主编结构设计原理1-9章).pdf→→/s/1pJ6Vfp5贾俊平_统计学_第四版_习题答案.pdf→→/s/1jG9hn0M软件工程导论(第五版)_(张海藩_着)_清华大学出版社_课后习题答案.pdf→→/s/1kT8zkz1软件工程导论-第五版_课后习题答案%28清华大学出版社%29张海藩著.pdf→→/s/1qWtvU9m软件工程导论_张海藩_第五版课后习题答案.pdf→→/s/1mgK802G运筹学基础及应用第五版胡运权主编课后练习答案.pdf→→/s/1o6K4t8e近代物理复习题答案.pdf→→/s/1bnzmbTl 通信原理_李晓峰_课后习题答案.pdf→→/s/1pJ2lyXX通信原理习题及答案(第六版)_樊昌信_曹丽娜_编著__国防工业出版社.pdf→→/s/1jGDQUJ8通信电子线路习题解答(严国萍版).pdf→→/s/1ntjs7hf逻辑代数基础课后习题答案.pdf→→/s/1o6ufVGe重点推荐---《数值分析》课后习题答案.pdf→→/s/1eQ456QQ量子力学习题解答-第3章.pdf→→/s/1sjoAeID量子力学练习题答案.pdf→→/s/1eQqsylG 金属材料学习题答案(曹志强老师的).pdf→→/s/1gdwvZFl钢结构基础(第二版)课后习题答案.pdf→→/s/1sjlSrut铁道社单片机习题参考答案.pdf→→/s/1o6qIbSA随机过程习题解答.pdf→→/s/1o6G0618集成电子技术基础教程(上)习题解答.pdf→→/s/1i3mO3fn雷达原理习题解答1.pdf→→/s/13XQ6U高一数学期末复习题及答案.pdf→→/s/1ntlu7g9高中物理必修1、必修2课后习题答案(人教版).pdf→→/s/1jGFSIME高二数列复习题答案.pdf→→/s/1o6lY2nC 高电压技术习题与答案.pdf→→/s/1sjEY8pB 高等代数北大第三版习题全解王萼芳石生明修订.pdf→→/s/1gdn87ZX高等代数_北大第三版_习题答案.pdf.pdf→→/s/1o6lYx6M高等土力学(李广信)1-5章部分习题答案(最新版).pdf→→/s/1jGC4XGa高等教育出版社离散数学课后习题完整答案.pdf→→/s/1dDy2aTb高考数学填空题解答策略.pdf→→/s/1vQmF8 高频电子线路习题答案_张肃文__第五版.pdf→→/s/1nt7Ff1v高鸿业版宏观经济学课后习题答案_%28第十二章到二十三章%29第五版全.pdf→→/s/1sjBAEq5王镜岩生物化学课后习题答案.pdf→→/s/1hqn649e《国际金融学》习题与答案→→/s/1eQ1NKe2 黄达《金融学》精编版(第二版)课后习题答案→→/s/1pJFI9j92014年江南大学微生物学教程(第二版周德庆)考研资料及历年真题答案→→/s/1hq7Pxfm中南大学土木工程材料课后习题及答案→→/s/1o64psNo本资料分上,中,下部三份,欢迎查阅下载建筑装修用花岗岩石材友情赞助。

《编译原理》课后习题答案

《编译原理》课后习题答案

第7 题证明下述文法G[〈表达式〉]是二义的。

〈表达式〉∷=a|(〈表达式〉)|〈表达式〉〈运算符〉〈表达式〉〈运算符〉∷=+|-|*|/答案:可为句子a+a*a 构造两个不同的最右推导:最右推导1 〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉=>〈表达式〉〈运算符〉a=>〈表达式〉* a=>〈表达式〉〈运算符〉〈表达式〉* a=>〈表达式〉〈运算符〉a * a=>〈表达式〉+ a * a=>a + a * a最右推导2 〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉=>〈表达式〉〈运算符〉〈表达式〉〈运算符〉a=>〈表达式〉〈运算符〉〈表达式〉* a=>〈表达式〉〈运算符〉a * a=>〈表达式〉+ a * a=>a + a * a第8 题文法G[S]为:S→Ac|aB A→ab B→bc该文法是否为二义的?为什么?答案:对于串abc(1)S=>Ac=>abc (2)S=>aB=>abc即存在两不同的最右推导。

所以,该文法是二义的。

或者:对输入字符串abc,能构造两棵不同的语法树,所以它是二义的。

第9 题考虑下面上下文无关文法:S→SS*|SS+|a(1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。

(2)G[S]的语言是什么?答案:(1)此文法生成串aa+a*的最右推导如下S=>SS*=>SS*=>Sa*=>SS+a*=>Sa+a*=>aa+a*(2)该文法生成的语言是:*和+的后缀表达式,即逆波兰式。

第10 题文法S→S(S)S|ε(1) 生成的语言是什么?(2) 该文法是二义的吗?说明理由。

答案:(1)嵌套的括号(2)是二义的,因为对于()()可以构造两棵不同的语法树。

第11 题令文法G[E]为:E→T|E+T|E-T T→F|T*F|T/F F→(E)|i证明E+T*F 是它的一个句型,指出这个句型的所有短语、直接短语和句柄。

编译原理习题及答案 ppt课件

编译原理习题及答案  ppt课件
39ppt课件40编译原理教程习题解析图图216正规式a??baab对应的nfa40ppt课件141编译原理教程习题解析图图217图216确定化后的状态转换矩阵41ppt课件42编译原理教程习题解析由于对非终态的状态12来说它们输入ab的下一状态是一样的故状态1和状态2可以合并将合并后的终态3命名为2则得到表23注意终态和非终态即使输入ab的下一状态相同也不能合并
ppt课件
7
《编译原理教程》习题解析
8
在编译方式下,高级语言程序的执行是分两步进行 的:第一步首先将高级语言程序全部翻译成机器代码程序, 第二步才是执行这个机器代码程序。因此,编译对源程序 的处理是先翻译,后执行。
从执行速度上看,编译型的高级语言比解释型的高级 语言要快,但解释方式下的人机界面比编译型好,便于程 序调试。
ppt课件
24
《编译原理教程》习题解析
25
图2-5 正规式(ab)*a对应的NFA
ppt课件
25
《编译原理教程》习题解析
26
图2-6 正规式a(ba)*对应的NFA
ppt课件
26
《编译原理教程》习题解析
27
—
图2-7 图2-5和图2-6确定化后的状态转换矩阵
ppt课件
27
《编译原理教程》习题解析
C.汇编语言是计算机唯一能够直接识别并接受 的语言
D.高级语言接近人们的自然语言,但其依赖具 体机器的特性是无法改变的
ppt课件
2
《编译原理教程》习题解析
3
(2) 将编译过程分成若干“遍”是为了 。
A.提高程序的执行效率
B.使程序的结构更加清晰
C.利用有限的机器内存并提高机器的执行效率
D.利用有限的机器内存但降低了机器的执行效

编译原理课后习题答案

编译原理课后习题答案

编译原理课后习题答案编译原理习题答案习题11.1翻译程序:把⽤某种程序设计语⾔(源语⾔)编写的程序(源程序)翻译成与之等价的另⼀种语⾔(⽬标语⾔)的程序(⽬标程序)。

编译程序:⼀种翻译程序,将⾼级语⾔编写的源程序翻译成等价的机器语⾔或汇编语⾔的⽬标程序。

1.2词法分析、语法分析、语义分析和中间代码⽣成、代码优化、⽬标代码⽣成1.3词法分析:根据语⾔的词法规则对构成源程序的符号进⾏扫描和分解,识别出⼀个个的单词。

语法分析:根据语⾔的语法规则,把单词符号串分解成各类语法单位。

语义分析及中间代码⽣成:对语法分析识别出的语法单位分析其含义,并进⾏初步翻译。

代码优化:对中间代码进⾏加⼯变换,以产⽣更⾼效的⽬标代码。

⽬标代码⽣成:将中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或会变指令代码。

以上5个阶段依次执⾏。

习题22.1 (1)有穷⾮空的符号集合(2)利⽤产⽣是规则A->v将A替换为v时与A的上下⽂⽆关。

(3)略(4)推导是把句型中的⾮终结符⽤⼀个产⽣是规则的右部开替代的过程;直接推导是将⾮终结符的替代结果只⽤了⼀次产⽣式规则。

(5)略(6)⼀个句型的最左直接短语(7)如果⼀个⽂法存在某个句⼦对应两棵不同的语法树或有两个不同的最左(右)推导,则称这个⽂法是⼆义的。

2.2(1)VN ={Z,A,B} VT ={a,b,c,d,e}(2)abbcde,abbbcde是,acde不是。

2.3 (1)L[G]={d|n≥1,m≥0}(2)2.4 (1) A=>B=>c=>fAg=>fBg=>fCg=>feg(2)A=>AaB=>AaC=>Aae=>Bae=>BcCae=>Bceae=>Cceae=>eceae(3)A=>B=>BcC=>BcfAg=>BcfAaBg=>BcfAaCg=>BcfAaeg=>BcfBaeg =>BcfCaeg=>Bcfeaeg=>Ccfeaeg=>ecfeaeg(3)中题⽬有错应为C fCg|e2.5L[G]={a?b?c?|aab,n≥2}2.6 (1)Z→AB A→Aa|ε B→Bb|ε(2)Z→aZb|ab(3)Z→aAb A→aAb|b(4)Z→AB A→aAb|ab B→cB|ε(5)Z→aaAb|ab Z→aaBb|bb A→aaAb|ab B→aaBb|bb2.7 ⼀位数:Z→2|4|6|8两位数:Z→AB A→1|2|3|4|5|6|7|8|9 B→0|2|4|6|8三位以上:Z→ACB A→1|2|3|4|5|6|7|8|9 B→0|2|4|6|8 C→CDD→0|1|2|3|4|5|6|7|8|92.8证明:E=>E+T=>E+T*F短语:T*F E+T*F 直接短语:T*F 句柄:T*F2.9 语法树: E 短语:E*T , (E*T) , F↑(E*T) ,F ,E* F↑(E*T)E *F 直接短语:E*T , FT ↑ F 句柄:FF ( E )E * T2.10(1)语法树(2)直接短语:a , ZZ 句柄:Z( L )L , ZZ ( L )Za2.11最左推导:Z=>ZaB=>BaB=>B+AaB=>A+AaB=>(+)Z*aB=>(+)ZaB*aB =>(+)+aB*aB=>(+)+aA*aB=>(+)+a(*aB=>(+)+a(*aA=>(+)+a(*a(直接短语:(,+句柄:(2.12(1) S=>iSeS=>iiSeS=>iiIeS=>iiIeIS=>iS=>iiSeS=>iiIeS=>iiIeI(2) S=>SaS=>cSaS=>cfaS=>cfafS=>cS=>cSaS=>cfaS=>cfaf(3) E=>EOE=>EOEOE=>iOEOE=>i+EOE=>i+iOE=>i+i-E=>i+i-iE=>EOE=>iOE=>i+E=>i+EOE=>i+iOE=>i+i-E=>i+i-i2.13 Z→aABZ|cCACdA→bAB|aZA|cCCB→bAB|CzbC→cZ|c习题33.1(1)确定的有限⾃动机(2)不确定的有限⾃动机(3)正规集是⼀类特殊的单词集合,正规式是正规集的描述⼯具 3.2 (1) (1|2|3|4|5|6|7|8|9|0)*(1|3|5|7|9) (2) 11(0|1)*00 3.3 证明:b *(a|b)+={a,b,ab,ba,aa,bb …} (a|b)+={a,b,ab,ba,aa,bb …} 3.4 (1)(2)DDDD3.5(1) (2)(3)3.6(1) (01|10) *(01|10)(2) (0(1|00)*)|003.7(1) Z →1AB (2)Z →ABA →(0|1)A A →0A|εA →0|1B →(0|1)B|ε B →0B B →ε3.8 r=a(a|b )*bb3.9 Z →1BB →0Z|0 Z →0Z|ε3.10 3.11DDD习题44.1 (1)若⽂法G[Z]满⾜①⽂法不含左递归②③(2)4.2(1) First(S)={a,d} First(B)={a,d,c,ε}First(A)={a,d,e,c} First(D)={a,d,ε}Follow(S)={#,a,b,d,e} Follow(B)={a,d}Follow(A)={b} Follow(D)={e,a,d,b}(2) 不是4.3 (1) 证明: First(Z)={a,b,c} Follow(S)={#,a,b,c,d} First(A)={a,b,c,d} Follow(A)={ #,a,b,c,d }First(B)={a,d,c} Follow(B)={ a,b,c,d } 是LL(1)⽂法。

编译原理习题及答案(整理后)

编译原理习题及答案(整理后)
ቤተ መጻሕፍቲ ባይዱ
5、自下而上的语法分析中,应从 开始分析。 a. 句型 b. 句子 c. 以单词为单位的程序 d. 文法的开始符 e. 句柄 6、对正规文法描述的语言,以下 有能力描述它。 a.0型文法 b.1型文法 c.上下文无关文法 d.右线性文法 e.左线 性文法 三、填空题 1、文法中的终结符和非终结符的交集是 。词法分析器交给语法 分析器的文法符号一定是 ,它一定只出现在产生式的 部。 2、最左推导是指每次都对句型中的 非终结符进行扩展。 3、在语法分析中,最常见的两种方法一定是 分析法,另一是 分析法。 4、采用 语法分析时,必须消除文法的左递归。 5、 树代表推导过程, 树代表归约过程。 6、自下而上分析法采用 、归约、错误处理、 等四种操作。 7、Chomsky把文法分为 种类型,编译器构造中采用 和 文 法,它们分别产生 和 语言,并分别用 和 自动机识别所产 生的语言。 四、判断题 1、文法 S→aS|bR|ε描述的语言是(a|bc)* ( ) R→cS 2、在自下而上的语法分析中,语法树与分析树一定相同。 ( ) 3、二义文法不是上下文无关文法。 ( ) 4、语法分析时必须先消除文法中的左递归。 ( ) 5、规范归约和规范推导是互逆的两个过程。 ( ) 6、一个文法所有句型的集合形成该文法所能接受的语言。 ( ) 五、简答题 1、句柄 2、素短语 3、语法树 4、归约 5、推导 六、问答题 1、给出上下文无关文法的定义。 2、文法G[S]: S→aSPQ|abQ QP→PQ bP→bb
E E + F E + T P T i P #<·+·>+<·i·># 图2-8-1 句型P+T+I的语法及优先关系
6、选c。
7、由图2-8-1的语法树和优先关系可以看出应选b。

编译原理课后习题解答

编译原理课后习题解答

〈句子〉=>〈主语〉〈谓语〉
=>〈主语〉〈动词〉〈直接宾语〉
=>〈主语〉〈动词〉〈冠词〉〈名词〉
=>〈主语〉〈动词〉〈冠词〉peanut
=>〈主语〉〈动词〉the peanut
=>〈主语〉ate the peanut
=>〈冠词〉〈形容词〉〈名词〉ate the peanut
=>〈冠词〉〈形容词〉 elephant ate the peanut
=>〈冠词〉big elephant ate the peanut
=> the big elephant ate the peanut
(B) 〈句子〉=>〈主语〉〈谓语〉
=>〈主语〉〈动词〉〈直接宾语〉
=>〈冠词〉〈形容词〉〈名词〉〈动词〉〈直接宾语〉
=>〈冠词〉〈形容词〉〈名词〉〈动词〉〈冠词〉〈名词〉
〈偶数字〉::=0 | 2 | 4 | 6 | 8
3. 写一文法,使其语言是偶整数的集合,但不允许有以 0 开头的偶整数。
解:G[〈偶整数〉]:
〈偶整数〉::= 〈符号〉〈单偶数〉|〈符号〉〈首数字〉〈数字串〉〈尾偶数〉
〈符号〉::= + | — |ε
〈单偶数〉::=2 | 4 | 6 | 8
〈尾偶数〉::= 0 |〈单偶数〉
S::= a(B)a B::= bB |b|ε ( 2 ) 文法[G〈S〉]: S ::= (A)(B) A::= aA|a B::= bB|b 6. 文法 G3[〈表达式〉]: 〈表达式〉::=〈项〉|〈表达式〉+〈项〉|〈表达式〉—〈项〉 〈项〉::=〈因子〉|〈项〉*〈因子〉|〈项〉/〈因子〉 〈因子〉::=(〈表达式〉)| i 试给出下列符号串的推导: i, (i), i*i, i*i+i, i*(i+i) 解:(1)〈表达式〉=>〈项〉 =>〈因子〉

《编译原理1》习题.V12.pdf

《编译原理1》习题V12一、单项选择题1.编译程序是一种( A )软件。

A.系统B.应用C.MISD.ERP2.BNF是一种广采用的( C )的工具。

A.描述规则B.描述语言C.描述文法D.描述句子3.无符号常数的识别和拼数工作通常在(B )阶段完成。

A.词法分析B.语法分析C.语义分析D.代码生成4.“运算符与运算对象类型不匹配”属于(B )。

A.语法错误B.语义错误C.语用错误D.词法错误5.一遍扫描的编译程序的优点是(D )。

A.算法清晰B.便于分工C.便于优化D.编译速度快6.编译程序生成的目标代码程序(A )是可执行的程序。

A.不一定B.一定C.一定不D.必须经链接装配后7.编译程序是对(D )。

A.汇编程序的翻译B.高级语言的解释执行C.机器语言的执行D.高级语言的翻译8.测试一个编译程序时使用的测试数据是(A )。

A.源程序B.中间代码C.目标代码D.任意数据9.由“非终结符→符号串”形式的规则构成的文法是(C )。

A.0型文法B.1型文法C.2型文法D.3型文法10.文法识别符号经过任意步推导得到的结果是(A )。

A.句型B.句柄C.句子D.短语11.关于短语和句柄,正确的描述是(B )。

A.短语就是句柄B.直接短语才可能是句柄C.最左短语一定是句柄D.最右短语一定是句柄12.一个语言的文法是(C )。

A.唯一的B.不唯一的C.个数有限的D.无数个13.文法G所描述的语言是( D )集合。

A.文法G的字母表V中所有符号组成的符号串B.文法G的字母表V的闭包V*中的所有符号串C.由文法的开始符号推出的所有符号串D.由文法的开始符号推出的所有的终结符号串14.文法分为四种类型:0型文法、1型文法、2型文法、3型文法,其中3型文法是(B)。

A.短语文法B.正规文法C.上下文有关文法D.上下文无关文法15.一个上下文无关文法包含四个部分,一组非终结符,一组终结符,一个开始符号以及一组( C )。

编译原理习题答案


对应的if与else等。它们的存在必定因下列规则的必定存在:
E::=E+T|T T::=T*F|F F::=(E)|i
以及 S::=if(E)S else S
因此,E=>* xEy x, y≠
与 S=>* uSv u, v≠ ,
即, E与S等必定是具有自嵌套特性的非终结符号。因此通常的程序设计语言
的文法必具有自嵌套特性的非终结符号,也就是说不可能是正则文法。
不能写:E =>T=>F =>(E) => (i )
可以写: E => T => F => (E) => + (i)
E =>E-T =>T-T =>T*F-T =>F*F-T
=>i*F-T=>i * i - T=>i * i - F =>i * i - i (最左推导)
或
E =>E-T =>E-F =>E-i =>T-i =>T*F-i
G [W]: W::=A0 A::=0{01|0}
第十六页,共六十二页。
6.试消去文法G[S]:
S::=Qc|Rd|c Q::=Rb|Se|b R::=Sa|Qf|a
解: 步骤1 首先判定是文法左递归还是规则左递归
步骤2 是文法左递归,按相应算法处理如下。 步 骤2.1 把非终结符号排序成
U1=S U2=Q U3=R (n=3)
=> T*i-i => F*i-i =>i*i-i
(最右推导)
第四页,共六十二页。
E => T => T/F => F/F => (E)/F => (E+T)/F

《编译原理》(清华大学出版社第二版)课后习题答案

第5题
PL/0编译程序所产生的目标代码是一种假想栈式计算机的汇编语言,请说明该汇编语言中下列指令各自的功能和所完成的操作。
(1)INT 0 A
(2)OPR 0 0
(3)CAL L A
答案:
PL/0编译程序所产生的目标代码中有3条非常重要的特殊指令,这3条指令在code中的位置和功能以及所完成的操作说明如下:
或者:允许0开头的非负整数?
第3题
为只包含数字、加号和减号的表达式,例如9-2+5,3-1,7等构造一个文法。
答案:
G[S]:
S->S+D|S-D|D
D->0|1|2|3|4|5|6|7|8|9
第4题
已知文法G[Z]:
Z→aZb|ab
写出L(G[Z])的全部元素。
答案:
Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbb
N→D|1|3|5|7|9
D→2|4|6|8
F→N|0
G→D|0
第6题
已知文法G:
<表达式>::=<项>|<表达式>+<项>
<项>::=<因子>|<项>*<因子>
<因子>::=(<表达式>)|i
试给出下述表达式的推导及语法树。
(5)i+(i+i)
(6)i+i*i
答案:
(5) <表达式>
=><表达式>+<项>
n n
L(G[Z])={a b |n>=1}
第5题写一文法,使其语言是偶正整数的集合。要求:

华中科技大学出版社出版,编译原理课件第十二章

该栈用以存放现 在已生成了代码 ,但还未生成引 用其结果值的那 些三元式的编号 和临时变量
i … 2 1
TRIP
Ti … T2 T1
TEMP
过程 GETTEMP
在生成三元式i的代码之前,必须检查两个运算量, 在生成三元式 的代码之前,必须检查两个运算量,如果其中 的代码之前 一个运算量引用了前面的三元式, 一个运算量引用了前面的三元式,那么就必须用分配给这个 三元式的临时变量去替代这个运算对象。 三元式的临时变量去替代这个运算对象。 这项工作由GETTEMP(A, B)来完成,其中 是被检查的运算对 来完成, 这项工作由 来完成 其中A是被检查的运算对 象字段,返回时B中将包含临时变量或变量的名字 中将包含临时变量或变量的名字。 象字段,返回时 中将包含临时变量或变量的名字。 GETTEMP
假设临时变量的范围是两两不相交或嵌套的, 假设临时变量的范围是两两不相交或嵌套的,可用栈结构保 存和删除这些临时变量。 存和删除这些临时变量。
分配给相应三元 为了简单起见,这里假定每个临时变量仅引用一次。 为了简单起见,这里假定每个临时变量仅引用一次。 三元式编号 式的临时变量
(栈顶 j 栈顶) 栈顶
(i).OPER1 (i).oper2 INACC (guad (i).OPER1, guad (i).oper2); ADD′ (i).oper2 GEN (′ADD′ guad (i).oper2); MULT′ (i).OPER2 [GEN (′MULT′, guad (i).OPER2);] ACC: (i).RESULT; ACC:= guad (i).RESULT; 表 程序
这种表示法中,运算符直接跟在其运算量的后面。 这种表示法中,运算符直接跟在其运算量的后面。例如 ,AB* 表示 A*B; ABCD/+* 表示 A*(B+C/D)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档