编译原理期末试题(8套含答案+大题集)(10)
static long cc = 30; short dd = 40; }
.file \ .version \gcc2_compiled.: .data
.align 4
.type aa,@object .size aa,4 aa:
.long 10 .globl bb .align 2
.type bb,@object .size bb,2 bb:
.value 20 .align 4
.type cc.2,@object .size cc.2,4 cc.2:
.long 30 .text
.align 4 .globl func
.type func,@function func:
pushl ?p
movl %esp,?p subl $4,%esp
movw $40,-2(?p) .L1:
leave ret .Lfe1:
.size func,.Lfe1-func .ident \(GNU) egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)\ 8.(10分)C语言是一种类型语言,但它不是强类型语言,因为编译时的类型检查不能保证所接受的程序没有运行时的类型错误。例如,编译时的类型检查一般不能保证运行时没有数组越界。请你再举一个这样的例子说明C语言不是强类型
第46页共6页
语言。 9.(10分)如果在A机器上我们有C语言编译器CCA,也有它的源码SA(用C语言写成)。如何利用它通过尽量少的工作来得到B机器的C语言编译器CCB。 10.(5分)表达式(?x.(?yz.(x + y) + z) 3) 4 5和(?x.(?yz.(x + y) + z) 3 5) 4有同样的结果。在抽象机FAM上,哪一个表达式对应的目标代码的执行效率高?为什么?
参考答案 1.
others start 1 / 2 * 2 * others 4 *
/ 5
2.LR(1)文法 LR(1)文法 二义文法 S ? AB | aABb S ? AB S ? AASb | ? A ? aaAb | ? A ? aaAb | ab | ? A ? a | ?
B ? Bb | ? B ? Bb | ? 3. int real id , $ D D?TL D?TL T T?int T?real L L?id R R R ?, id R R ? ?
4. S? ? S print(S.num) S ? (L) S.num := L.num +1 S ? a S.num := 0 L ? L1,S L.num := L1.num + S.num L ? S L.num := S.num S? ? {S.depth := 0} S S ? {L.depth := S.depth +1} (L) S ? a {print(S.depth)} L ? {L1.depth := L.depth} L1, {S.depth := L.depth} S L ? { S.depth := L.depth} S 5. t1 := initial t2 := final if t1 > t2 goto L1 v := t1 L2: stmt
第47页共6页
if v = t2 goto L1 v := v + 1 goto L2 L1: 6.由于实参表达式是反序进入活动记录,而局部变量是顺序在活动记录中分配。 7.aa是静态外部变量,而bb是外部变量,它们都分配在静态数据区(由.data伪指令开始),但是bb由伪指令.globl指明为全局的,用来解决其它文件中对bb的外部引用,而aa只能由本文件引用。cc是静态局部变量,同aa和bb一样,它的生存期是整个程序并分配在静态数据区。由于cc在源程序中的作用域是函数func的体,而在目标文件中,它的作用域至少已是整个文件了,为避免同源文件中外部变量和其它函数的静态局部变量的名字冲突,所以要对它进行改名,成了cc.2。由于cc不是全局的,因此cc.2前面没有伪指令.globl。dd是自动变量,其作用域是函数func的体,其生存期是该函数激活期间,因此它分配在栈区,并且置初值是用运行时的赋值来实现。
8.例如联合体的类型检查一般也不可能在编译时完成,虽然下面例子是可静态判断类型错误的。 union U { int u1; int *u2;} u; int ?p; u.u1 = 10; p = u.u2; ?p = 0;
9. ? 修改源码SA 的代码生成部分,让它产生B机器的代码,称结果程序为SB。 ? 将SB提交给CCA进行编译,得到一个可执行程序。
? 将SB提交给上述可执行程序进行编译,得到所需的编译器CCB。
10.第一个表达式在执行?yz.(x + y) + z) 3时出现参数个数不足的情况,因此有FUNVAL的值进入栈顶,然后发现参数个数不足,又把它做成FANVAL的情况。而第二个表达式执行的是(?yz.(x + y) + z) 3 5,不会出现参数个数不足的情况。因此第二个表达式的执行效率比第一个表达式的高。
《编译原理》期末大题
1. 设有如下文法G(S),试消除其左递归。
G(S):S—>Ac|c A—>Bb|b B—>Sa|a
解:
S→abcS′|bcS′|cS′, S′→abcS′|?
2. 试构造与下面G(S)等价的无左递归的文法。
G(S):S—>Sa|Nb|c N—>Sd|Ne|f
解:S→fN′bS′|cS′, S′→aS′|dN′bS′|?, N′→eN′|? 3. 设有文法G(S):
S—>aBc|bAB
第48页共6页
A—>aAb|b B—>b|ε
①求各产生式的FIRST集,FOLLOW(A)和FOLLOW(B),以及各产生式的SELECT集。 ②构造LL(1)分析表,并分析符号串baabbb是否是。
解:(1)FIRST(aBc)={a}, FIRST(bAB)={b} FIRST(aAb)={a}, A→b: FIRST(A→b)={b}, B→b: FIRST(b) = {b}, FIRST(ε)={ε} FOLLOW(A)={b, #}, FOOLOW(B)={c, #}
SELECT(S→aBc)={a}, SELECT(S→bAB) ={b}, SELECT(A→aAb)={a}, SELECT(A→b)={b}, SELECT(B→b)={b}, SELECT(B→?)={c, #}
因此,所得的LL(1)分析表如表A-4所示。
表A-4 LL(1)分析表 (2)分析符号串baabbb成功,baabbb是该文法的句子,如图A-16所示。
步骤 符号栈 输入串 所用的产生式 1 #S baabbb# S?bAB 2 #BAb baabbb# 3 #BA aabbb# A?aAb 4 #BbAa aabbb# 5 #BbA abbb# A?aAb 6 #BbbAa abbb# 7 #BbbA bbb# A?b 8 #Bbbb 9 #Bbb 10 #Bb 11 #B 12 # bbb# bb# b# # # B?ε 成功
输输入符号 入 a b c # VN S S→aBc S→bAB A A→aAb A→b B B→b B→? B→? 图A-16 识别串baabbb的过程
4. 对下列文法G(S):
S—>D(R) R—>R;P|P P—>S|I D—>i
①计算文法G中每个非终结符的FIRSTVT集和LASTVT集。 ②构造文法G的算符优先关系矩阵。 解:(1)FIRSTVT(S)={(, i},FIRSTVT(D) ={i},FIRSTVT(R)={;, (, i},FIRSTVT(P)={i, (},LASTVT(S)={)},LASTVT(D)={i},LASTVT(R) = {;, ), i},LASTVT(P)={i, )} …… 此处隐藏:1557字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记