编译原理b.docx
《编译原理b.docx》由会员分享,可在线阅读,更多相关《编译原理b.docx(10页珍藏版)》请在冰豆网上搜索。
编译原理b
题号
一
二
三
四
总分
得分
得分
一、填空题(每空1分,总计20分)
1.编译程序是源程序的一个系统,其输出是。
2.一个句型的叫做该句型的句柄。
3.二义性文法中,有的文法的二义性是不能消除的,这类文法被称为。
4.算符优先分析方法和LR分析方法都是自下而上的分析方法,算符优先分析方法是通
过刻画可规约串的,而LR分析方法是通过刻画可规约串的。
5.编译过程中常见的中间语言形式有、 、 和 。
6.语法制导翻译的方法就是为每个产生式配上一个,并在语法分析的同时执行之。
7.过程的DISPLAY表中记录了过程的。
8.原程序中的错误通常分为和两类。
9.编译程序所生成的目标代码通常三类,有能够机器语言代码、机器语言模块和。
10.程序语言中参数传递的方式主要有,,三种。
得分
二.选择题(每题1分,总计10分)
1.编译程序是对()。
A.汇编程序的翻译B.高级语言程序的解释执行
C.机器语言的执行D.高级语言的翻译
2.正规表达式M1和M2等价是指()。
A.M1和M2的状态数相等B.M1和M2的有向边条数相等
C.M1和M2所识别的语言集相等D.M1和M2的状态数和有向边条数都相等
3.文法G:
SxSx|y所识别的语言是()。
A.xyxB.(xyx)*C.xnyxn(n≥0)D.x*yx*
4.homaky把文法分为四种类型,即0型,1型,2型,3型其中2型文法又叫做()。
A.上下无关文法B.上下有关文法C.正规文法D.短语文法
5.在通常的语法分析中,()特别适用于表达式的分析。
A.算符优先分析法B.LR分析法C.递归下降分析法D.LL
(1)分析法
6.间接三元式的执行顺序通过()反映出来的。
A.指示器B.间接码表C.符号表D.程序变量
7.有一语法制导翻译程序如下所示:
G[S]:
SbAb{print”x”}
A(B{print”y”}
Aa{print”u”}
BAa){print”v”}
若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为()。
A.uyyyvvvxB.uvyvyvxC.xyvyvyvuD.uvvvyyxy
8.程序的基本块是指()。
A.没有循环的程序段B.没有分支的程序段
C.一组顺序执行的程序段,仅有一个入口和一个出口
D.没有嵌套的程序段
9.下列优化方法中不是针对循环优化进行的是()。
A.复写传播B.删除归纳变量C.强度削弱D.代码外提
10.在目标代码生成阶段,符号表用于()。
A.目标代码生成B.语义检查C.语法检查D.地址分配
得分
三.简答题(每题4分,总计20分)
1.什么是非确定有限自动机(五元组及其含义)
2.什么是规范规约
3.在LL
(1)分析方法中,为什么要求文法无左递归无回溯
4.C语言中有inta[5][6][7];数组说明语句,画出数组的内情向量表。
5.画出c语言的活动记录
得分
四.综合题(总计50分)
1.填写编译程序结构示意图,包括编译程序的每个功能模块,及其输出信息写在箭头左侧(10分)
2、构造正规式((a|b)*|aa)*b的最简DFA。
(10分)
3.给出文法G[S]:
SaSb|P
PbPc|bQc
QQa|a
(1)消除文法G[S]的左递归和回溯(5分)
(2)构造LL
(1)分析表(10分)
4.在该程序流图中求出所有节点的必经节点集,找出所有回边和循环。
(10分)
5.考察下面求最大公因子的三地址代码程序,划分基本块,并且在划分好的基本块基础上给出程序流图。
(5分)
(1)readX
(2)readY
(3)R=X%Y
(4)IfR=0goto(8)
(5)X=Y
(6)Y=R
(7)goto(3)
(8)writeY
(9)halt
一、填空题(每空1分,计20分)
1、翻译目标代码
2、最左直接短语
3、先天二义性文法
4、最左素短语句柄
5、逆波兰式抽象语法树四元式三元式间接三元式
6、语义子程序或语义动作
7、嵌套过程的层次关系
8、语法错误语义错误
9、可直接运行的机器语言代码待装配的机器语言模块汇编语言
10、传值传名传地址
二、选择题(每题1分,计10分)
1.D2.C3.C4.A5.A6.B7.B8.C9.A10.D
三、简答题(每题4分,计20分)
1、NFA是个五元组Mn=(S,∑,f,Q,Z)
(1)S是一个有限状态集,它的每个元素称为一个状态
(2)∑是一个有穷输入字母表,它的每一个元素称为一个输入字符
(3)f多值映射
(4)Q初始状态集
(5)Z终止状态集
2、规约过程中每一步把当前句型的句柄用相应产生式的左部进行替换。
3、左递归导致程序无法执行,回溯会大大降低程序的执行效率
4、
0
4
5
0
5
6
0
6
7
3
0
int
a
5、
四.综合题
1.
源程序
单词序列
语法单位
四元式
四元式
目标程序
2.
I
Ia
Ib
{X,1,2,4}
{1,2,3,4}
{1,2,4,Y}
{1,2,3,4}
{1.2,3,4}
{1,2,4,Y}
{1,2,4,Y}
{1,2,3,4}
{1,2,4,Y}
S
a
b
1
2
3
2
2
3
3
2
3
3.
(1)消除文法的左递归:
(3分)
SaSb|P
PbPc|bQc
QaQ`
Q`aQ`|ε
消除回溯之后得到文法G`[S]:
(2分)
SaSb|P
PbP`
P`Pc|Qc
QaQ`
Q`aQ`|ε
(2)对每个非终结符构造FIRST集和FOLLOW集:
(5)
FIRST(S)={a,b}FIRST(P)={b}
FIRST(P`)={a,b}FIRST(Q)={a0}
FIRST(Q`)={a,ε}
FOLLOW(S)={b,#}FOLLOW(P)={b,c,#}
FOLLOW(P`)={b,c,#}FOLLOW(Q)={c}
FOLLOW(Q`)={c}
LL
(1)分析表如下:
(5分)
a
b
c
#
S
SaSb
SP
P
PbP`
P`
P`Qc
P`Pc
Q
QaQ`
Q`
Q`aQ`
Q`ε
4.
必经结点集
D
(1)={1}
D
(2)={1,2}
D(3)={1,2,3}
D(4)={1,2,4}
D(5)={1,2,4,5}
D(6)={1,2,4,6}
D(7)={1,2,4,7}
回边
(1)已知D(6)={1,2,4,6},因存在6→6且6DOM6,故6→6是回边;
(2)已知D(7)={1,2,4,7},因存在7→4且4DOM7,故7→4是回边;
(3)已知D(4)={1,2,4},因存在4→2且2DOM4,故4→2是回边。
循环
{6}
{2,3,4,5,6,7}
{4,5,6,7}
5.
基本块(10分)
A:
(1)
(2)B:
(3)(4)C:
(5)(6)(7)D:
(8)(9)
程序流图: