北科大编译原理期末试题
一、选择题(本大题共20小题,每小题1分,共20分)
1、描述一个语言的文法是___________。
a、唯一的
b、不唯一的
c、个数有限的
2、汇编程序是将______翻译成______;编译程序是将_______翻译成__________。
a、汇编语言程序
b、机器语言程序
c、高级语言程序d汇编语言或机器语言程序
3、设有文法G[I]:
I→I0|I1|I a|Ic|a|b|c
下列符号串中是该文法的句子的有___________________。
①ab0 ②a0c01 ③aaa ④bc10
可选项有
a、①
b、②③④
c、③④
d、①②③④
4、生成非0开头的正偶数集的文法是______________。
a、Z::=ABC c、Z::=ABC|2|4|6|8
C::=0|2|4|6|8 C::=0|2|4|6|8
B::=BA|B0|εB::=BA|B0|0
A::=1|2|3|4|5|6|7|8|9 A::=1|2|3|4|5|6|7|8|9
b、Z::=ABC d、Z::=ABC|2|4|6|8
C::=0|2|4|6|8 C::=0|2|4|6|8
B::=BA|B0|0 B::=BA|B0|ε
A::=1|2|3|4|5|6|7|8|9 A::=1|2|3|4|5|6|7|8|9
5、一个上下文无关文法G包括四个组成部分依次为:一组_____、一个_____、一组_____、一组______。
a、字符串
b、字母数字串
c、产生式
d、结束符号
e、开始符号
f、文法
g、非终结符号
h、终结符号
6、现有前缀表示的表达式文法G1:
E::=-EE E::=-E E::=a|b|c
则文法的句子—a-bc的所有可能语法树有______棵。
a、1
b、2
c、3
d、4
7、下列文法__________二义文法
E::=EiT|T T::=T+F|iF|F F::=E*|(
可选项有:a、是b、不是c、无法判断。
8、语法分析的常用方法是_________:
①自顶向下②自底向上③自左向右④自右向左
可选项有:
a、①②③④
b、①②
c、③④
d、①②③
9、LR(K)文法是_________。
a、从左到右分析,共经过K步的一种编译方法。
b、从左到右分析,每次向前预测K步的一种编译方法。
c、从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法。
d、从左到右分析,每次走K步的一种编译方法。
10、素短语是指_______的短语。
①至少包含一个符号
②至少包含一个非终结符号
③至少包含一个终结符号
④除自身外不再包含其它终结符号
⑤除自身外不再包含其它非终结符号
⑥除自身外不再包含其它短语
⑦除自身外不再包含其它素短语
可选项有:
a、①④
b、①⑤
c、①⑥
d、②④
e、③⑤
f、③⑦
g、②⑦
11、文法的二义性和语言的二义性是两个____________概念。
a、不同
b、相同
c、无法判断
12、在编译中产生语法树是为了____________。
a、语法分析
b、语义分析
c、词法分析
d、产生目标代码
13、下述正规表达式中________与(a*+b)*(c+d)等价。
①a*(c+d)+b(c+d)
②a*(c+d)*+b(c+d)*
③a*(c+d)+b*(c+d)
④(a+b)*c+(a+b)*d
⑤(a*+b)*c+(a*+b)*d
可选项有:a、①b、②c、③d、④ e、⑤ f、④⑤ g、③④⑤
14、_______这样的语言,他们能被确定的有限自动机识别,但不能用正规表达式表
示:
a、存在
b、不存在
c、无法判定是否存在
15、LL(K)文法________二义性的。
a、都是
b、都不是
c、不一定都是
16、下面的文法是__________。
S::=aAa|aBb|bAb|bBa A::=x B::=x
可选项有:a、LR(1)文法b、LALR(1)文法c、都不是d、a和b
17、编译过程中,比较常见的中间语言有___________。
①波兰表示
②逆波兰表示
③三元式
④四元式
⑤树形表示
可选项有:a、①③④b、②③④c、③④①⑤d、②③④⑤
18、-a-(b*c/(c-d)+(-b)*a)的逆波兰表示是___________。
a、abc*cd-b-a*+/--
b、a-bc*cd-b-a*+/-
c、a-bc*cd-/b-a*+-
d、a-bc*/cd-b-a*+-
19、在编译程序中安排中间代码生成的目的是_______________。
①便于进行存储空间的组织
②利于目标代码优化
③利于编译程序的移植
④利于目标代码的移植
⑤利于提高目标代码的质量
可选项有:
a、②④
b、①②③
c、③④①
d、②③④⑤
20、代码优化的主要目标是_____________。
①如何提高目标程序的运行速度
②如何减少目标程序运行所需的空间。
③如何协调①和②
④如何使生成的目标代码尽可能简短
可选项有:
a、②④
b、①②③
c、③④①
d、②③④
二、简答题:(每小题5分,共30分)
1、证明下面文法是二义性的。
P::=PaP|PbP|cP|Pe|f
2、设一文法S→AB S→c A→bA A→a B→aSb B→c 对于句子bbaacb
写出其全部短语,直接短语和句柄。
3、求出下列文法所产生语言对应的正规式。
S::=aA A::=bA|aB|b B::=aA
4、表达式(a+b)*c/d-e*f分别表示三元式、四元式、逆波兰式序列
5、消除下列文法的左递归。
E::=T|EAT T::=F|TMF F::=(E)|i A::=+|- M::=*//
6、给出与下图的NFA等价的正规式。
c
三、问答题:
1、已知文法G S::=aBc|bAB A::=aAb|b B::=b|
构造预测分析表并给出输入串baabbb分析过程。
(10分)
2、正规式((0*|1)(1*0))* (10分)
(1)构造该正规式所对应的NFA(画出状态转换图)。
(2)将所求的NFA确定化。
(画出确定化的状态转换图)。
3、若有文法G(S)的产生式如下:S::=bASB|bA A::=dSa|b B::=cAa|c构造识别
所有项目集规范族的DFA。
(15分)
(1)判断该文法是否是LR(0)文法,说明理由。
(2)判断该文法是否是SLR(1)文法,说明理由。
(3)判断该文法是否是LR(1)文法,说明理由。
(4)判断该文法是否是LALR(1)文法,说明理由。
4、设已给文法G: E::=E+T E::=T T::=T*F T::=F F::=(E) F::=i
构造此文法的算符优先矩阵。
(15分)。