编译原理模拟考试更新中.docx
《编译原理模拟考试更新中.docx》由会员分享,可在线阅读,更多相关《编译原理模拟考试更新中.docx(13页珍藏版)》请在冰豆网上搜索。
![编译原理模拟考试更新中.docx](https://file1.bdocx.com/fileroot1/2023-2/6/4bc9ed5c-f18a-465f-aa9f-c29a0ca859e6/4bc9ed5c-f18a-465f-aa9f-c29a0ca859e61.gif)
编译原理模拟考试更新中
编译原理(模拟考试更新中)
————————————————————————————————作者:
————————————————————————————————日期:
四川理工学院试卷(2015至2016学年第2学期)
系专业级班学号姓名
密封线
密封线内不要答题
课程名称:
编译原理(模拟试卷更新中)
命题教师:
黎远松
适用班级:
软件2013级1-5班
考试2016年5月17日(12周二下午3:
00-5:
00)共6页
题号
一
二
三
四
五
六
七
八
评阅(统分)教师
得分
2
黎远松
注意事项:
1、满分100分。
要求卷面整洁、字迹工整、无错别字。
2、考生必须将姓名、班级、学号完整、准确、清楚地填写在试卷规定的地方,否则视为废卷。
3、考生必须在签到单上签到,若出现遗漏,后果自负。
4、如有答题纸,答案请全部写在答题纸上,否则不给分;考完请将试卷和答题卷分别一同交回,否则不给分。
试题(模拟更新中)
得分
评阅教师
一、选择题(共10个小题,每个小题2分,共20分)
1.词法分析器的输入是________。
A.符号串
B.源程序
C.语法单位
D.目标程序
2.语言是________。
A.句子的集合
B.产生式的集合
C.符号串的集合
D.句型的集合
3.一个句型中称为句柄的是该句型的最左________。
A.非终结符号
B.短语
C.句子
D.直接短语
4.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即________。
A.字符
B.单词
C.句子
D.句型
5.构造编译程序应掌握________。
A.源程序
B.目标语言
C.编译方法
D.以上三项都是
6.正规式M1和M2等价是指________。
A.M1和M2的状态数相等
B.M1和M2的有向边条数相等
C.M1和M2所识别的语言集相等
D.M1和M2状态数和有向边条数相等
7.代码优化的目的是________。
A.节省时间
B.节省空间
C.节省时间和空间
D.把编译程序进行等价交换
8.生成中间代码时所依据的是________。
A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
9.下推自动机识别的语言是________。
A.0型语言
B.1型语言
C.2型语言
D.3型语言
10.对应Chomsky四种文法的四种语言之间的关系是________。
A.L0⊂L1⊂L2⊂L3
B.L3⊂L2⊂L1⊂L0
C.L3=L2⊂L1⊂L0
D.L0⊂L1⊂L2=L3
得分
评阅教师
二、是非题(共10个小题,每个小题2分,共20分。
下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”)
1.一个上下文无关文法的开始符,可以是终结符或非终结符。
(×)
2.一个句型的直接短语是唯一的。
(×)
3.已经证明文法的二义性是可判定的。
(×)
4.每个基本块可用一个DAG表示。
(√)
5.每个过程的活动记录的体积在编译时可静态确定。
(√)
6.2型文法一定是3型文法。
(×)
7.一个句型一定句子。
(√)
8.算符优先分析法每次都是对句柄进行归约。
(×)
9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)
10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
(√)
得分
评阅教师
三、回答下列问题:
(共3个小题,每个小题6分,共18分)
1.对于下面程序段
programtest(input,output)
vari,j:
integer;
procedureCAL(x,y:
integer);
begin
y:
=y*y;x:
=x-y;y:
=y-x
end;
begin
i:
=2;j:
=3;CAL(i,j)
writeln(j)
end.
若参数传递的方法分别为
(1)传值、
(2)传地址,(3)传名,请写出程序执行的输出结果。
答:
(1)3
(2)16(3)16(每个值2分)
2.计算文法G(M)的每个非终结符的FIRST和FOLLOW集合,并判断该文法是否是LL
(1)的,请说明理由。
G(M):
M→TB
T→Ba|ε
B→Db|eT|ε
D→d|ε
解答:
计算文法的FIRST和FOLLOW集合:
(4分)
FIRST(M)={a,b,e,d,ε}FIRST(T)={a,b,e,d,ε}
FIRST(B)={b,e,d,ε}FIRST(D)={d,ε}
FOLLOW(M)={#}FOLLOW(T)={a,b,e,d,#}
FOLLOW(B)={a,#}FOLLOW(D)={b}
检查文法的所有产生式,我们可以得到:
1.该文法不含左递归,
2.该文法中每一个非终结符M,T,B,D的各个产生式的候选首符集两两不相交。
3.该文法的非终结符T、B和D,它们都有ε候选式,而且
FIRST(T)∩FOLLOW(T)={a,b,e,d}≠φ
所以该文法不是LL
(1)文法。
(2分)
3.考虑下面的属性文法
产生式
语义规则
S→ABC
A→a
B→b
C→c
B.u:
=S.u
A.u:
=B.v+C.v
S.v:
=A.v
A.v:
=3*A.u
B.v:
=B.u
C.v:
=1
(1)画出字符串abc的语法树;
(2)对于该语法树,假设S.u的初始值为5,属性计算完成后,S.v的值为多少?
答:
(1)(2分)
(2)S.v的值为18(2分)
得分
评阅教师
四、(8分)构造一个DFA,它接受∑={a,b}上所有包含ab的字符串。
答案:
(2分)构造相应的正规式:
(a|b)*ab(a|b)*
(3分)
aa
εεabεε
bb
(3分)确定化:
I
{0,1,2}
{1,2,3}
{1,2}
{1,2,3}
{1,2,3}
{1,2,4,5,6}
{1,2}
{1,2,3}
{1,2}
{1,2,4,5,6}
{1,2,3,5,6}
{1,2,5,6}
{1,2,3,5,6}
{1,2,3,5,6}
{1,2,4,5,6}
{1,2,5,6}
{1,2,3,5,6}
{1,2,5,6}
bb
ba
aaaa
abb
b
最小化:
{0,1,2}{3,4,5}
{0,2},1,{3,4,5}
得分
评阅教师
五、(6分)写一个文法使其语言为L(G)={anbncm|m,n≥1,n为奇数,m为偶数}。
文法G(S):
得分
评阅教师
六、(8分)对于文法G(S):
1.写出句型b(Ma)b的最右推导并画出语法树。
2.写出上述句型的短语,直接短语和句柄。
答:
1.(4分)
2.(4分)
短语:
Ma),(Ma),b(Ma)b
直接短语:
Ma)
句柄:
Ma)
得分
评阅教师
七、(12分)对文法G(S):
S→a|^|(T)
T→T,S|S
(1)构造各非终结符的FIRSTVT和LASTVT集合;
(2)构造算符优先表;
(3)是算符优先文法吗?
(4)构造优先函数。
答:
(1)(4分)
(2)(4分)
a
^
(
)
a
>
>
^
>
>
(
<
<
<
=
<
)
>
>
<
<
<
>
>
(3)是算符优先文法,因为任何两个终结符之间至多只有一种优先关系。
(1分)
(4)优先函数(3分)
a
^
(
)
F
4
4
2
4
4
G
5
5
5
2
3
得分
评阅教师
八、(8分)文法G(S)及其LR分析表如下,请给出串baba#的分析过程。
(1)S→DbB
(2)D→d
(3)D→ε
(4)B→a
(5)B→Bba
(6)B→ε
LR分析表
ACTION
GOTO
b
d
a
#
S
B
D
0
r3
s3
1
2
1
acc
2
s4
3
r2
4
r6
S5
r6
6
5
r4
r4
6
s7
r1
7
S8
8
r5
r5
注:
答案格式为:
步骤
状态栈
符号栈
输入串
动作,产生式
0
0
#
baba#
初始化
步骤状态符号输入串
00#baba#
102#Dbaba#
2024#Dbaba#
30245#Dbaba#
40246#DbBba#
502467#DbBba#
6024678#DbBba#
70246#DbB#
801#S#acc