编译原理期末考试学习的试题以及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

期末考试一试卷(A)卷
一、填空(每小2分,共20分)
1、字母表∑,用∑*表示∑上全部有的串会合,∑*称∑的①。

2、z=abc,z的固有是①。

3、怎样由言基本符号成程序中各个法成分(包含程序)的一叫
①。

4、={a,b},上的正式
(a|b)(a|b)相的正集

5、NFA的映象
f 是从"状×字"映照到"状子集",f
①函数。

6、LR剖析是按范句型的
①可串。

7、点的①属性由点的兄弟点和父点的属性算。

8、假如剖析中一点的属性b依于属性c,那么个点的属性
b的的算必在定属性
c的的算
①。

9、于式符号表,引入一个示嵌套次关系表
-①
表,表是
指向目前正在理的最内的程的子符号表在符号表中的开端地点。

10、任一有向序列的
一条通路。

假如n1→n2,n2→n3,
n1=nk,称通路
⋯,nk-1→nk从点
①。

n1到点
nk
二、(每小
2分,共
14分)
1、姆斯基把文法分红4种型,即0型、1型、2型和3型。

此中
3型文法也称()。

A.上下没关文法B.
C.上下文相关文法 D.
2、生成非0开的正偶数集的文法是(正文法
无穷制文法)。

A.
Z::=ABC B.Z::=ABC
C::=0|2|4|6|8
B::=BA|B0|εA::=1|2|3|⋯|9 C.Z::=ABC|2|4|6|8 C::=0|2|4|6|8 B::=BA|B0|0 A::=1|2|3|⋯|9C::=0|2|4|6|8
B::=BA|B0|0
A::=1|2|3|
D.Z::=ABC|2|4|6
|8
C::=0|2|4|6|8
B::=BA|B0|
A::=1|2|3|
⋯|9
ε
⋯|9
3、先剖析法从左到右描入串
,当出()。

A.素短语
B.直接短语
C.句柄
D.最左素短语
4、齐心会归并有可能产生新的(
)矛盾。

A.归约
B.移进/移进
C.移进/归约
D.归约/归约
5、在编译中,动向储存分派的含义是()。

A.在运转阶段对源程序中的量进行储存分派
在编译阶段对源程序中的量进行储存分派
在说明阶段对源程序中的量进行储存分派
以上都不正确
6、活动记录中的连结数据不包含()。

A.老SP
B.返回地点
C.全局DISPLAY地点D形式单元7、有一语法制导翻译以下:S→bAb {printer(“1”)}
A→(B{printer(“2”)}
A→a{printer(“3”)}
B→Aa) {printer(“4”)}
若输入序列为b(((aa)a)a)b,且采纳自下而上的剖析法,则输出序列为()。

A.32224441B.34242421C.12424243D.34442212
三、写出条件语句IFa>0THENx:=x+1ELSEx:=4*(x-1)
的四元式序列(
6分)
四、设有基本块(8分)
B1:B:=3
(1)画出DAG图;
D:=A+C
E:=A*C(2)假定只有L在基本块后被引用,请写出优
化后的四元序列。

F:=D+E
G:=B*F
H:=A+C
I:=A*C
J:=H+I
K:=B*5
L:=K+J
M:=L
五、将以下图DFA最小化,并写出最小化
后DFA的正规式。

(10分)
c
b
a b
6
13d
b c d5b
b2a4a7
b
六、对下边的文法进行改写,并判断改写后是不是LL(1)文法。

(15分)
Aa|b
ASBBa
b
七、已知文法:
S;G|G
G(T)|H
a|(S)
T+S|S
求句型#a;(T+S);H;(S)#短语、句柄、素短语、最左素短语(12分)
八、【注意】计算机061/062班和计教061/062请做第1、2题,计算机063(国外
班)请做第
3题,做错题得
0分。

(15分)
【计算机061/062
班和计教061/062
班做】
1、给出文法G[S]的LR(1)项目集规范族中I0项目集的全体项目。

(5分)G[S]为:(1)E E+T(2)E T (3)T T*F
(4)T F(5)F(E)(6)F a
2、文法G[M]及其LR剖析表以下,请给
出对串
G[M]: 1)M→VbA2) V→d 4)A→a5)A→Aba dbba#的剖析过程。

(10分)3)V→ε
6) A→ε
ACTION GOTO
b d a#M A V 0r3S312
1acc
2S4
3r2
4r6S5r66
5r4r4
6S7r1
7S8
8r5r5
【计算机063国外班做】
3、判断以下各题所示能否为LR类文法,假如请说明是LR(0),SLR(1),LALR(1)或LR(1)的哪一种,并结构相应剖析表。

(15分)
S aAdeBdaBreAr
a
a
答案:
一、填空题(每空2分,共20分)
1、闭包
2、ε,a,ab
3、语法
4、{aa,bb,ab,ba}
5、多
6、句柄
7、继承
8、以后
9、DISPLAY10、环路
二、单项选择(每题2分,共14分)
题号
1234567
答案
B D
C
D A D B
三、写出条件语句
IFa>0THENx:=x+1ELSEx:=4*(x-1)的四元式序列(6分)
解:①(j>,a,0,③)
②(j, , ,⑥)
③(+,x,1,T1)
④(:=,T1,,T2)
⑤(j, , ,⑨
⑥(-,x,1,T3)
⑦(*,4,T3,T4)
⑧(:=,T4,,x)
)评分标准:标号对给1分,
四元式格式对给1分,
每2条四元式序列对给
1分。


四、设有基本块(8分)
画出DAG图;
假定只有L在基本块后被引用,请写出优化后的四元序列。

评分标准:DAG图正确给4分,代码每条1分。

解:(1)关于B1其DAG图:
L,M
n9
+
G n7
n6
F,J
*
+
n4D,H n5E,I
+
*
K B
n8n1n2n3 15
3A
C
若只有L活跃,则代码为
D:=A+C
E:=A*C
F:=D+E
L:=F+15
五、将以下图DFA最小化,并写出最小化后DFA的正规式。

(10分)
解:P0=({6,7},{1,2,3,4,5})
P0=({6,7},{1,2},{3,4,5})输入b进入不一样状态。

P0=({6,7},{1,2},{3,4},{5})3,4对d有定义,5没有定义
最小化DFA以下:
b c b
a b
136
d
a5
A
正规式为:b*a(c|da)*bb*
评分标准:区分状态集过程给3分,图对得5分,图部分对依据对的多少给2-4
分,正规上式对给2分。

六、对下边的文法进行改写,并判断改写后是不是LL(1)文法。

(15分)
S Aa|b
SB
ab
【解法
1】first(S)={b}
first(A)={b}first(B)={a}
follow(S)={#,a}follow(A)={a}follow(B)={a}
select(S AS)=first(AS)={b}select(S b)=first(b)={b}
select(S AS)∩select(S b)={b}
≠φ
所以该文法不是
改写为:S Aa|b LL(1)文法S SBa|b
A S
B A SB
B ab B ab
除去左递归:S bS’
S BaS’|ε化简得:S
S’
bS’
BaS’|ε
A S
B (剩余)B ab
B ab
first(S)={b}first(S
follow(S)={#}follow(S select(S bS’)=first(bS ’)={a,ε}
’)={#}
’)={b}
first(B)={a}
follow(B)={a}
select(S’BaS’)=first(BaS
’)={a}
select(S’ε)=first(ε)Ufollow(S’)={#,ε} select(S
’BaS’)∩select(S
’ε)=φ
所以改写后是LL(1)文法。

评分标准:改写前判断LL(1)全对4分,改写正确
6分,最后结论1分。

【解法2】first(S)={b} first(A)={b} first(B)={a}4分,改写后判断
LL(1)正确得
follow(S)={#,a}follow(A)={a}follow(B)={a}
select(S AS)=first(AS)={b}select(S b)=first(b)={b}
select(S AS)∩select(S b)={b}所以该文法不是LL(1)文法
用S的产生式右部取代A的产生式右部的
S→Aa|b A→AaB|bB B→ab ≠φS得:
除去左递归后文法变成:
0)S→Aa1)S→b 3)N→aBN4)N→ε
非终结符FIRST集2)A→bBN 5)B→ab FOLLOW集
S{b}{#}
A{b}{a}
B{a}{a}
N{a,
ε}
{a}
SELECT(S→Aa)∩SELECT(S→b)={b}∩{b}={b}≠φ
SELECT(N→aBN)∩SELECT(N→ε)={a}∩{a}={a}≠φ
所以文法不是LL(1)的。

评分标准:改写前判断LL(1)全对4分,改写正确4分,改写后判断
LL(1)正确得6分,最后结论1分。

七、已知文法:
S;G|GGG(T)|H
H a|(S)
T T+S|S
求句型#a;(T+S);H;(S)#短语、句柄、素短语、最左素短语(12分)
解:语法图见以下

短语有:
a相对非终结符H、G短语
T+S相对非终结符T短语
H相对非终结符G短语
(S)相对非终结符H、G短语
a(T+S)相对非终结符G短语
a(T+S);H相对非终结符S短语
a(T+S);H;(S)相对非终结符S短语
句柄是a
素短语a,T+S,(S)
最左素短语a
S
S;G
S;G H
G H(S)
G(T)
H T+S
a
评分标准:语法图正确4分,短语正确5分,句柄正确1分,素短语正确1分,最左素短语正确
1分。

八、1、给出文法G[S]的LR(1)项目集规范族中I0项目集的全体项目。

(5分)
G[S]为:(1)EE+T(2)E T(3)T T*F
(4)T F(5)F(E)(6)F a
解:
I0:
S’E,#
EE+T,#,+
T,#,+
TT*F,#,+,*
F,#,+,*
F(E),#,+,*
F a,#,+,*
评分标准:前4条项目,每条分,后边3条下边。

每条1分
2、文法G[M]及其LR剖析表以下,请给出对串dbba#的剖析过程。

(10分)
G[M]:1)M→VbA2)V→d3)V→ε
4)A→a5)A→Aba6)A→ε
解:对串dbba#的剖析过程以下表
对输入串dbba#的剖析过程
步骤 状态栈 文法符号栈 节余输入符号
动作
1 0 # dbba# 移进
2 03
#d bba# 用V →d 归约
3 02 #V
bba#
移进
#Vb ba# 用A →ε归约
4 024
5 024
6 #VbA ba#
移进 6 02467 #VbAb a#
移进 7 024678 #VbAba # 用A →Aba 归约 8 0246 #VbA # 用M →VbA 归约
9
01
#M
#
接受
评分标准:每条1分,格式1分。

3、判断以下各题所示能否为LR 类文法,假如请说明是 LR(0),SLR(1),LALR(1)或 LR(1)的哪一种,并结构相应剖析表。

(15分)
S aAdeBd aBreAr A a B a
解:LR(0)项目集规范族如图:
I1:
S ’ S ·
S
I0: I2:
a
S
a ·Ad S ’ ·S S
a ·Br
S ·aAd A ·a S ·eBd B ·a
S ·aBr e
S ·eAr
I3:
S e ·Bd
S e ·Ar
A ·a
B ·a
I4:
SaA ·d I5: SaB ·r
a
I6:
A a ·
B a ·
在状态I6中有“规约-规约”矛盾,且Follow(A)=follow(B)={d,r}故不是LR(0)和
SLR(1)。

文法LR(1)项目集规范族以下:
S
I0:
a S’·S,#
·aAd,#S·eBd,#
S ·aBr,#e
S ·eAr,#I1:
S’S·,#
I2:
a·Ad,
#Sa·Br,
#A·a,
dB·a,r
I3:
S e·Bd,#
S e·Ar,#
A
B
a
a
B
I4:
S
aA·d,
#
I5:
S
aB·r,
#
I6:
a·,d
a·,r
A I7:
a·,r
a·,d
d
I10:
S aAd·,#
r
I11:
S aBr·,#
d
A ·a,r
B ·a,d
A
I8:
S
eB·d,
#
I9:
S eA·r,#
r
I12:
S eBd·,#
I13:
S eAr·,#
在状态I6、I7中有“规约-规约”矛盾,但归依项目的向前搜寻符集不订交,故文法是LR(1)。

I6,I7是齐心集,若归并,则归并后的状态I6,I7有项目:
a·,r/d
a·,d/r
向前搜寻符集订交,故文法不是LALR(1)。

所以,本文法是LR(1)文法。

评分标准:LR(0)和SLR(1)的判断正确给4分,LR(0)和SLR(1)的结论1分,LR(1)项目集规范族正确的给6分,判断LALR(1)齐心集正确给2分,LALR(1)结论1分,LR(1)结论1分。

相关文档
最新文档