2022年五套编译原理期末考试试卷及答案.docx

上传人:C****o 文档编号:59192078 上传时间:2022-11-09 格式:DOCX 页数:52 大小:492.61KB
返回 下载 相关 举报
2022年五套编译原理期末考试试卷及答案.docx_第1页
第1页 / 共52页
2022年五套编译原理期末考试试卷及答案.docx_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《2022年五套编译原理期末考试试卷及答案.docx》由会员分享,可在线阅读,更多相关《2022年五套编译原理期末考试试卷及答案.docx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆得分一填空题 ( 每空 2 分,共20 分 )1. 不同的编译程序关于数据空间的储备安排策略可能不同,但大部分编译中采纳的方案有两种:静态储备安排方案和动态储备安排方案,而后者又分为(1) 和 (2) ;2. 规范规约是最(3)规约;3. 编译程序的工作过程一般划分为 5 个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及( 5) ;另外仍有( 6)和出错处理;名师归纳总结 - - - - - - -4表达式 x+y*z/a+b的后缀式为(7) ;5文法符号的属性有综合属性和(8);6假设二位数组按行存放,

2、而且每个元素占用一个储备单元,就数组 a1.15,1.20某个元素 ai,j的地址运算公式为(9);7局部优化是局限于一个(10)范畴内的一种优化;得分二挑选题 (1-6为单项题, 7-8为多项题,每问2 分,共20 分)1. 一个上下文无关文法 G 包括四个组成部分:一组终结符,一组非终结符,一个(),以及一组();A 字符串B 产生式C 开头符号D 文法2. 程序的基本块是指();A 一个子程序B 一个仅有一个入口和一个出口的语句C 一个没有嵌套的程序段D 一组次序执行的程序段,仅有一个入口和一个出口3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法;A 自左向右B

3、 自顶向下C 自底向上D 自右向左4在通常的语法分析方法中,()特殊适用于表达式的分析;A 算符优先分析法B LR 分析法C 递归下降分析法D LL (1)分析法5经过编译所得到的目标程序是();A 四元式序列B 间接三元式序列C 二元式序列D 机器语言程序或汇编语言程序6 一个文法所描述的语言是();描述一个语言的文法是();A 唯独的B 不唯独的C 可能唯独,也可能不唯独第 1 页,共 38 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆7 假如在文法 G 中存在一个句子,当其满意以下条件()之一时,就称该文法是二义文法;A 其最左推导和最右推导相同 B 该

4、句子有两个不同的最左推导C 该句子有两个不同的最右推导 D 该句子有两棵不同的语法树E 该句子对应的语法树唯独名师归纳总结 - - - - - - -第 2 页,共 38 页8 下面(学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - )语法制导翻译中,采纳拉链回填技术;A. 赋值语句B. 布尔表达式的运算C. 条件语句D. 循环语句得分三 解答题 (共 60 分 )1 (共 15 分)已知文法 GE: EETE|( E)|i T *|+(1) 将文法 G 改造成 LL (1)文法;( 5 分)(2) 构造文法 G 中每个非终结符的 FIRST 集合及 FOLLOW

5、集合;( 5 分)(3) 构造 LL (1)分析表;( 5 分)2 (共 12 分)给定文法 GS :SSS| (1) 给出句子 的规范推导过程;(4 分)(2) 指出每步推导所得句型的句柄;(4 分)(3) 画出该句子的语法推导树;(4 分)3 (共 8 分)在一个移入- 规约分析过程中采纳以下的语法制导翻译模式,在按一个产生式规约时,立刻执行括号中的动作;AaBprint “ 0” ; 3 ;要求:给出加注释的分析树及Acprint “ 1” ; BAbprint “ 2” ; (1) 当分析器的输入为 aacbb 时,打印的字符串是什么?(分)( 2) 写出分析过程;(5 分)4 (10

6、 分)翻译循环语句 while ad then x:=y+z 四元式序列;参考以下部分翻译模式:名师归纳总结 1 S if E then M S1 backpatchE.truelist,M.quad; 1 .nextlist 第 3 页,共 38 页S.nextlist:=mergeE.falselist,S2Swhile M1 E do M2 S 1 backpatchS1.nextlist,M1, .quad; backpatchE.truelist,M2, .quad; - - - - - - -学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - S.next

7、list:=E.falselist 3 SA1 relop id2 emit j, -,- , M1 .quad S.nextlist:=makelist 4 LSL.nextlist:=S.nextlist 5 MM.quad:=nextquad 6 EidE.truelist:=makelistnextquad; e.falselist:=makelistnextquad+1; emit j relop.op, id1.place , id2.place , 0;emit j,-,- ,0 7 S L:=Eemit:=,E.place,-,L.place 8EE 1+E2E.place:=

8、newtemp; emit+,E1.place,E2.place,E.place, 5 (共 15 分)设有表格构造文法 GS :Sa| | T TT,S|S1运算文法 GS 的 FIRSTVT 集和 LASTVT 集;( 5 分)5 分)2构造 GS 的优先关系表,并判定 GS 是否为算符优先文法;(3运算 GS 的优先函数;(5 分)得分二单项挑选题 (每题2 分,共10 分)1. 设有文法 GI: I I1|I0|Ia|Ic|a|b|c以下符号串中是该文法句子的有(); ab0 a0c01 aaa bc10可选项有:名师归纳总结 A BCD第 4 页,共 38 页- - - - - -

9、-2. 程序的基本块是指();学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - A 一个子程序 B 一个仅有一个入口和一个出口的语句C 一个没有嵌套的程序段 D 一组次序执行的程序段,仅有一个入口和一个出口3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法;A 自左向右 B 自顶向下 C 自底向上 D 自右向左4经过编译所得到的目标程序是();A 四元式序列 B 间接三元式序列C 二元式序列 D 机器语言程序或汇编语言程序5 运行阶段的储备组织与治理的目的是();提高编译程序的运行速度 节约编译程序的储备空间提高目标程序的运行速度 可选项有:

10、为运行阶段的储备安排做预备A. 2. B. C. D. 得分(10 分) 已知文法 GS: SaBc|bAB AaAb|b B b| (4) 构造其 LL (1)分析表;(5) 判定符号串 baabbb 是否为该文法的句子(写出含有符号栈、输入串和规章的分析过程);3. 10 分 已知文法 G 为:EE+T|TTT*P|PPi(1) 构造该文法的优先关系表(不考虑语句括号 法;( 2) 构造文法 G 的优先函数表;#),并指出此文法是否为算符优先文4 (8 分)在一个移入- 规约分析过程中采纳以下的语法制导翻译模式,在按一个产生式规约时,立刻执行括号中的动作;名师归纳总结 SbAbprint

11、“ 1” 第 5 页,共 38 页ABprint “ 2” - - - - - - -Aaprint “ 3” 学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - BAa print “ 4” (3) 当输入序列为 baaaab 时,打印的字符串是什么?(4) 写出移入 - 规约分析过程;5 ( 12 分)翻译循环语句 while xy do if a=b then x:=2*y+a ;要求:给出加注释的分析树、三地址码序列及相应的四元式序列;参考以下部分翻译模式:1 S if E then M S 1 backpatchE.truelist,M.quad; S.ne

12、xtlist:=mergeE.falselist,S 1 .nextlist 2 Swhile M 1 E do M 2 S 1 backpatchS 1.nextlist,M 1, .quad; backpatchE.truelist,M 2, .quad; S.nextlist:=E.falselist 3 SA2 emit j, -,- , M1 .quad S.nextlist:=makelist 4 LSL.nextlist:=S.nextlist 5 MM.quad:=nextquad 6 Eid1 relop idE.truelist:=makelistnextquad; e.f

13、alselist:=makelistnextquad+1; 6.emit j relop.op, id1.place , id2.place , 0;emit j,-,- ,0 7 S L:=Eemit:=,E.place,-,L.place 8EE 1+E2E.place:=newtemp; emit+,E1.place,E2.place,E.place, 8 分 Generate assembly code for the following sequence assuming that x,y and z are in memory locationsnoticing only two

14、registers R1 and R2. S=0 I=0 L1: if xy goto L2 Z=s+ai I=i+1 Goto L1 名师归纳总结 L2: 第 6 页,共 38 页- - - - - - -7 6 学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - 分 Give out the all basic blocks of the following program fragment and construct the relevant flow graphDAG. read C A=0 B=1 L4: A=A+B if BC goto L2 B=B+1

15、goto L4 L2: write A 8. 8 分Translate the assignment statement bi=b*c-b*d into 1A syntax tree. 2Three address instructions. 答案:1 栈式动态储备安排 2 堆式动态储备安排 3 左 4 语法分析 5 目标代码生成 6 表格治理 7 xyz*ab+/+ 8 继承属性 9 a+i-1*20+j-110基本块;一、挑选题(每问2 分,共20 分)1.C B2.D3.B4.A5.D6.A,C 7.BCD,选对一个得1 分且不超过满分,选错一个扣一分,扣完为止8.BCD, 选对一个得1

16、 分且不超过满分,选错一个扣一分,扣完为止二、解答题1(1)文法存在左递归,排除左递归后的文法为:名师归纳总结 EEE|i E (2 分)分,其它错或少写一个扣0.5分第 7 页,共 38 页ETEE| (2 分)T*|+(1 分)(2)5 分 没考虑 #扣 0.5- - - - - - -FIRSTE=,i FIRSTE学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - =*,+, FIRSTT=*,+ FOLLOWE=,*,+,# FOWLLOWE = ,*,+,# FOLLOWT=,i(3) 每错一个扣 0.5 分,全错或不写不得分,扣完为止,共 5 分 i *

17、 + # E EEEEiE EE ETEEETEEE E ET T* T+2( 1) 规范推导过程如下;写错推导符号扣 0.5 分, 错写或少写一步推导扣 0.5 分,扣完为止,最左推导扣 2 分,共 4 分;S SS S SS S SS SSS SS SSSSS S (2) (1)中加下划线的部分是句柄,标识如(1);每少写一个句柄扣 0.5 分,扣完为止,共 4 分;(3) 每少写步扣 0.5 分,扣完为止,共 4 分;S SSS S S S S S S S 名师归纳总结 - - - - - - -第 8 页,共 38 页3( 1)打印的字符串是:学而不思就惘,思而不学就殆 精选学习资料

18、- - - - - - - - - 12022(错一个扣0.5分, 共 3 分)(2) 归约过程中错一步扣0.5分,扣完为止;(共 5 分)4( 1)每少写一步扣0.5分,扣完为止,共5 分;S while M1.q=100 E1.t=102 do M2.q=102 S1 E1.f=107 ad x E5.p=y + E6.p=z y z 四元式序列为:100 j , a, b,102 101 j , _, _,107 102 j , c, d ,104 103 j, _, _,106 104 , y, z,T1 105: ,T1, _, x 106 j , _, _,100 5( 1)少写一

19、个扣1 分,全错或不写不得分,共5 分;FIRSTVTS=a, , FIRSTVTT=, 名师归纳总结 - - - - - - -第 9 页,共 38 页学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - a, , LASTVTS= a, , LASTVTT= a, , , 2 优先表如下;每错一个扣0.5分,全错或不写不得分,扣完为止,共3 分名师归纳总结 - - - - - - -第 10 页,共 38 页学而不思就惘,思而不学就殆 精选学习资料 .、.、三种关系中的- - - - - - - - - 文法 GS 没有两个非终结符相邻的情形,且其优先表中任一对终结

20、符之间最多满意一种,因此是 GS 算符优先文法;(2 分) , # 可以不考虑终结符“#” ; a A . . ., .# .或者(3)优先函数;可以不考虑终结符“#” ;每错一个扣0.5分,全错或不写不得分,扣完为止,共5 分;, # a f 6 6 2 6 6 2 g 7 7 7 2 5 2 或者a , f 4 4 2 4 4 g 5 5 5 2 3 三、 填空题(每空 2 分,共 20 分)1 目标程序(target code)语法分析( syntax analyzer)代码优化器( code optimizer )代码产生器( code generator )符号表治理( symbol

21、 table manager)2 继承属性( inherited attribute)3 局部优化( local optimization)4 四元式( quatriple)5 E+ * id名师归纳总结 四、单项挑选题(每题2 分,共10 分)第 11 页,共 38 页1.B2.D3.B4.D5.C 五、解答题(共70 分)1(1) LG=0m1 m|M1 共 2 分,写成扣 1 分(2) S=0S1=00S11=000111,共3 分,=写成 - 扣 1 分(3) 共 3 分,错处扣0.5分,扣完为止- - - - - - -2. (1)空白表格也可以填写“ 错误” 字样学而不思就惘,思而

22、不学就殆 精选学习资料 分,扣完为止- - - - - - - - - , 共 4 分,错一个扣 0.5 名师归纳总结 - - - - - - -第 12 页,共 38 页a 学而不思就惘,思而不学就殆 精选学习资料 c $# - - - - - - - - - b 名师归纳总结 S SaBcSbABB B第 13 页,共 38 页A AaAbAbB Bb(2)共 6 分,其中判定“baabbb是该文法句子” 为2 分,其他错一个扣0.5分,扣完为止符号栈输入串规章0.5分,扣完为止$S baabbb$ SbAB$BAb baabbb$ $BA aabbb$ AaAb$BbAa aabbb$

23、$BbA abbb$ AaAb$BbbAa abbb$ $BbbA bbb$ Ab$Bbbb bbb$ $Bbb bb$ $Bb b$ B$b $ $ $ success 3.1 共 6 分,其中判定“ 该文法为算符优先文法” 为2 分,其他错一个扣+ * i + i 2 共 4 分,错一个扣 0.5 分,扣完为止+ * f 2 4 4 g 1 3 5 4(1)34242421 ,共 4 分,错一个扣 0.5 分action (2)共 4 分,错一个扣0.5分,扣完为止stack Input string $ baaaab$ shift $b aaaab$ $b aaaab$abbb$ shi

24、ft $b aaaab$bbb$ shift - - - - - - -$b 学而不思就惘,思而不学就殆 精选学习资料 shift - - - - - - - - - aaaab$bb$ $ba aaab$ shift 0.5分,而$bA aaab$ reduce, A a$bAa aab$ shift $ bAa aab$ shift $ bB aab$ reduce, B Aa)$bA aab$ reduce, A B$bAa ab$ shift $bAa ab$ shift $b( B ab$ reduce, B Aa)$bA ab$ reduce, A B$bAa b$ shift $

25、bAa b$ shift $bB b$ reduce, B Aa)$bA b$ reduce, A B$bAb $ shift $S $ r educe, S bAb$s$ accept 5 共 12 分,其中带注释的分析树、三地址码序列和四元式序列分别为4 分,错一个序列扣错某点(某项)少于或等于 5 个扣 0.5 分带注释语法树 略 三地址码序列分,扣完为止四元式序列M1: if xy goto M2 100 j, x,y,102 goto M4 101 j,-,-,108 M2: if a=b goto M3 102 j=,a,b,104 goto M1 103 j,-,-,100 M3

26、: t1=2*y 104 *,2,y,t1 t2=t1+a 105 +,t1,a,t2 x=t2 106 =,t2,-,x goto M1 107 j,-,-,100 M4: 108 -,-,-,- 6共 8 分,错一个扣 0.5 LD R1,0 ST S,R1 名师归纳总结 - - - - - - -第 14 页,共 38 页学而不思就惘,思而不学就殆精选学习资料 - - - - - - - - - ST I,R1 L1: LD R1,X SUB R1,R1,Y OR SUB R1,Y BGTZ R1,L2 LD R2,aR1 ADD R2,R2,S OR ADD R2,S ST Z,R2

27、LD R1,I 从这开头,下面的语句中的 R1 也可以全部变成 R2 ADD R1,R1,1 OR INC R1 ST I,R1 BR L1 L2: 7 共 6 分,基本块划分和流图各为 3 分,错一处扣 1 分,扣完为止read c B1 A=0 B=1 B2 B3 B4 L4: A=A+B If BC goto L2 OR B4 B=B+1 Goto L4 OR B2 L2: write A 8. ( 1)共 4 分,错一项扣 1 分,扣完 为止( 2)共 4 分,错一项扣 1 分,扣完 为止 t1=b*c t2=b*d t3=t1-t2 名师归纳总结 - - - - - - -第 15

28、页,共 38 页学而不思就惘,思而不学就殆精选学习资料 - - - - - - - - - t4=i+1 or t4=i bt4=t3 名师归纳总结 - - - - - - -第 16 页,共 38 页学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - 一、判定题:1. 一个上下文无关文法的开头符,可以是终结符或非终结符; 2. 一个句型的直接短语是唯独的; 3. 已经证明文法的二义性是可判定的;()4. 每个基本块可用一个 DAG 表示;()5. 每个过程的活动记录的体积在编译时可静态确定;()6.2 型文法肯定是 3 型文法;()7. 一个句型肯定句子; 8. 算

29、符优先分析法每次都是对句柄进行归约; 9. 采纳三元式实现三地址代码时,不利于对中间代码进行优化;()10. 编译过程中,语法分析器的任务是分析单词是怎样构成的; 11. 一个优先表肯定存在相应的优先函数; 12. 目标代码生成时,应考虑如何充分利用运算机的寄存器的问题; 13. 递归下降分析法是一种自下而上分析法; 14. 并不是每个文法都能改写成 LL1 文法; 15. 每个基本块只有一个入口和一个出口; 16. 一个 LL1 文法肯定是无二义的; 17. 逆波兰法表示的表达试亦称前缀式; 18. 目标代码生成时,应考虑如何充分利用运算机的寄存器的问题; 19. 正规文法产生的语言都可以用

30、上下文无关文法来描述; 20. 一个优先表肯定存在相应的优先函数; 21.3 型文法肯定是 2 型文法; 22. 假如一个文法存在某个句子对应两棵不同的语法树,就文法是二义性的; 二、填空题:名师归纳总结 - - - - - - -1. 称为规范推导;2. 编译过程可分为() ,(),(),()和()五个阶段;3. 假如一个文法存在某个句子对应两棵不同的语法树,就称这个文法是();4. 从功能上说,程序语言的语句大体可分为()语句和()语句两大类;5. 语法分析器的输入是(),其输出是();6. 扫描器的任务是从()中识别出一个个();7. 符号表中的信息栏中登记了每个名字的有关的性质,如()

31、等等;8. 一个过程相应的 DISPLAY 表的内容为();9. 一个句型的最左直接短语称为句型的();10. 常用的两种动态存贮安排方法是()动态安排和()动态安排;11. 一个名字的属性包括 和 ;12. 常用的参数传递方式有(),()和();13. 依据优化所涉及的程序范畴,可将优化分成为(),()和()三个级别;14. 语法分析的方法大致可分为两类,一类是()分析法,另一类是()分析法;15. 猜测分析程序是使用一张()和一个()进行联合掌握的;16. 常用的参数传递方式有(),()和();17. 一张转换图只包含有限个状态, 其中有一个被认为是()态 ; 而且实际上至少要有一个()态

32、;18. 依据优化所涉及的程序范畴,可将优化分成为(),()和()三个级别;19. 语法分析是依据语言的()规章进行;中间代码产生是依据语言的()规章进行的;20. 一个句型的最左直接短语称为句型的();21. 一个文法 G,如它的猜测分析表 M 不含多重定义,就该文法是()文法;22. 对于数据空间的存贮安排, FORTRAN 采纳 策略, PASCAL 采纳 策略;23. 假如一个文法存在某个句子对应两棵不同的语法树,就称这个文法是 ;24. 最右推导亦称为(),由此得到的句型称为()句型;第 17 页,共 38 页学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - -

33、- )分析法;25. 语法分析的方法大致可分为两类,一类是()分析法,另一类是(26. 对于文法 G,仅含终结符号的句型称为 ;););27. 所谓自上而下分析法是指(28. 语法分析器的输入是(),其输出是(29. 局限于基本块范畴的优化称();)进行联合掌握的;);30. 猜测分析程序是使用一张()和一个(31.2 型文法又称为()文法; 3 型文法又称为()文法;32. 每条指令的执行代价定义为(33. 算符优先分析法每次都是对()进行归约;三、名词说明题:1. 局部优化 2. 二义性文法 3.DISPLAY 表 4. 词法分析器 5. 最左推导 6. 语法 7. 文法 8. 基本块 9

34、. 语法制导翻译 10. 短语 11. 待用信息 12. 规范句型 13. 扫描器 14. 超前搜寻 15. 句柄 16. 语法制导翻译 17. 规范句型 18. 素短语 19. 语法 20. 待用信息 21. 语义 四、简答题:1. 写一个文法 G, 使其语言为 不以 0 开头的偶数集;2. 已知文法 GS 及相应翻译方案 SaAb print “ 1” Sa print “ 2” AAS print “ 3” Ac print “ 4” 输入 acab, 输出是什么?3. 已知文法 GS SbAaAB | a BAa名师归纳总结 写出句子 baab 的规范归约过程;第 18 页,共 38

35、页- - - - - - -4.考虑下面的程序:学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - procedure px, y, z;begin y:=x+y; 名师归纳总结 - - - - - - -第 19 页,共 38 页学而不思就惘,思而不学就殆 精选学习资料 - - - - - - - - - z:=z*z; end begin A:=2; B:=A*2; PA, A, B; Print A, B end. 试问,如参数传递的方式分别采纳传地址和传值时,程序执行后输出 A, B 的值是什么 . 5. 文法 GS SdAB AaA| a BBb| 描述的语

36、言是什么?6. 证明文法 GS SSaS| 是二义性的;7. 已知文法 GS SBA ABS| d BaA| bS | c 的猜测分析表如下S a b c d # SBASBASBAA ABSABSABSAdB BaABbSBc给出句子 adccd 的分析过程;8. 写一个文法 G, 使其语言为 LG=albmclanbn| l=0, m=1, n=2 9. 已知文法 GS: Sa| T TT,S|S 的优先关系表如下:关系a , a - - . . . . =. . , . . 请运算出该优先关系表所对应的优先函数表;10. 何谓优化?按所涉及的程序范畴可分为哪几级优化?11. 目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?12

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁