大学编译原理课程复习试题及答案Word文档下载推荐.docx
- 文档编号:19946542
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:26
- 大小:107.59KB
大学编译原理课程复习试题及答案Word文档下载推荐.docx
《大学编译原理课程复习试题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《大学编译原理课程复习试题及答案Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
C•一上不是机器语言的程序
3.设字母表L={0,1,x,y},则£
上的正规式£
所对应的正规集为()
A.£
B.{£
0,1,x,y}
C・{£
}D・6
4*
假设G是一个文法,S是文法的开始符号,如果S===>
x,则称x是()
A•短语B.句柄
C•句子D.句型
5・一个算符文法的任何产生式的右部都不含有两个相继的()A.终结符B.非终结符
C.终结符和非终结符D.£
字
6.设有文法G[A]:
A-*Ax|Ay|Aa|Ac|a|b|c,
下列哪些是该文法的句子()
(1)aby
(2)aycyx(3)aaa(4)bcxy
A.
(1)
(2)(3)B.
(1)
(2)(4)
C.
(2)(3)(4)D・全部
7.LR分析器的核心部分是(
B.—张动作表
D.—张分析表
A.带先进后岀存贮器的DFA
C•一张GOTO表
在程序流图中,组成循环的结点序列应满足()
A.它们是强连通的且有唯一的入B.它们中间有唯一的入口结点口结点
C.它们中间有一条回边D.它们是强连通的
9・表达式a^b+cAa>
dVa+b^e的后缀式式为(
A.abcWad+>
/\ab+eHVB.abWc+Ada>
ab+eH\/
C.abc+Wad>
/\ab+eHVD.abc+Wad>
ab+/\eHV
10.程序基本块是指()
A.—个子程序
B.—个仅有一个入口和一个出口的语句
C.一个没有嵌套的程序段
D.—组顺序执行的程序段,仅有一个入口和一个岀口
1.A2.B3.C4.D5.B6.C7.D&
A9.C10.D
BNF是一种用于()的工具。
A.描述句型
C.描述语言
B.描述句子
D.描述文法
2.
设字母表L={0,1,x,y],则£
B・"
}
C.[€0,1,x,y]
D・6
3.
规范推导也称为()
A.最右推导
B.最左推导
c.—般推导
D.自左向右推导
4.
在规范归约中,任何可归约串的出现必在()
A•栈的内部
B•栈顶
C.剩余的输入串中
D.在先进后岀栈中
5・
一个算符文法的任何产生式的右部都不含有两个相继的()
A・终结符
B.非终结符
C.终结符和非终结符
D.£
6.
LR分析器的核心部分是()
A.—张分析表
D.带先进后岀存贮器的DFA
7.
算符优先分析的关键问题是寻找(
)。
A.句柄
B.最左素短语
C.短语
D.直接短语
四元式之间的联系是通过()
A.指示器
B.临时变量
C.四元式的编号
D.中间运算结果
9.
表达式aWb+c/\a>
dVa+bHe的逆波兰式为(
A.abc+Wad>
/\ab+eHV
B.abWc+/\da>
C.abcWad+>
/\ab+eHV
D.abc+Wad>
ab+/\eH\/
10.
代码外提时要求该不变运算所在的结点是循环的()。
A.某个岀口的必经结点
B.至少是一个入口的必经结点
C•入口的必经结点
D.所有出口的必经结点
1.D2.B3.A4.B5.B
B9.A10.D
填空题
1.一个状态转换图可用于一左的字符串。
2.设》={a,b,c},则尸中最短的符号串为。
3.若由文法的开始符号可以推导出串a,且,则a为原文法的一个句子。
4.若文法的某非终结符P满足,称文法含有左递归。
5.表达式-(a+b)/(c*d)-e的逆波兰式为
6.后序遍历一棵表达式树,可得到它的。
7.中间代码是一种而向语法,易于翻译成的代码。
四元式序列中各四元式出现的顺序与是一致的。
9'
若每个程序对应一个流图,则流图中的结点对应一个。
若从流图首结点出发,到达丐的任一通路必须经过则称的必经结点。
1.识别或接受
2.€
3.a€VT*
4.P==+>
Pa
5.ab+cd*/e-
6.逆波兰式
7.目标代码
运算顺序
9.基本块
10.ni为nj
一个非确定的有限自动机可以表示为一个元式。
若文法的某非终结符P满足,称文法含有左递归。
3・
设7=(1,2,3},则尸中最短的符号串为。
4・
用工+表示£
上所有的集合。
5.
三地址代码的一般形式为。
6・
递归下降法对每个构造一个相应的子程序。
7・
在算符优先分析中,用作为可归约串。
8.
在形式语言中,最推导被称为规范推导。
9.语法树中,一个结点的属性由此结点的父结点和/或兄弟结点的属性确定。
10.如果循环中对变疑I只有唯一的形如l=l±
C的赋值,则称I为循环中的变量。
1.五
2.P==+>
Pa
3.£
4.长度不为0的串
5.x:
=yopz
6.非终结符
7.最左素短语
右
9.继承
10-基本归纳
1.终态与非终态的区别在于。
2.用表示£
3.一个状态转换图可用于一泄的字符串。
4.用于词法分析的扫描缓冲区可将两个半区使用。
5.一个句型的称为该句型的句柄。
6.递归下降法对每个构造一个相应的子程序。
7.算符优先法尤英适用于的分析。
规范归约的关键在于如何确泄。
9.文法符号的属性值可自底向上应用语义规则计算出来。
10.DAG代表。
1.终态可接受空串
2.长度不为0的串
识别
互补
最左简单短语
非终结符
表达式
句柄
综合
有向无环图
判断题
若一个文法是递归的,则由它产生的语言的句子个数是有限的。
用于词法分析的扫描缓冲区可将两个半区重叠使用。
描述程序语言所采用的III型文法是上下文无关文法。
状态转换图实现的简单方法是使每个状态结点对应一个非终结符
一个LR分析器实质上是一个带有后进先出存储器的DFA。
有的左递归。
4・在规范归约中,任何可归约串的岀现必在栈的内部。
()
5.循环优化中的强度削弱主要是指将循环中的乘法变成加()
法。
6.符号表的信息栏中的内容称为关键字。
X
正规文法
一段小程序
自上而下
栈顶
X递归加法
X名字
设a是某句型的一个子串,若它能被一次直接归约为一个(非终结符,则a是该句型的一个直接短语。
)
语法分析过程可用一棵树表示出来,这棵树叫做语法树。
(
欲构造行之有效的自下而上分析器,则必须淸除文法中含(有的左递归。
四元式作为中间语言,用于翻译除表达式外的其他语句代(
码。
循环优化中的强度削弱主要是指将循环中的乘法变成加(法。
流图中有向边a-b为回边的条件是aDOMb。
1.X要求这个非终结符取代。
后,原句型还可继续向开始符方向归约。
2.X分析树
3・X自上而下c.
4.X各种
5-X递归加法
6.XbDOMa
2.已知文法G:
S->
iSeS|iS|i
该文法是否具有二义性?
请根拯句子iiiei构造语法树予以说明。
3.何谓递归下降分析法?
应用此种分析法的文法应满足什么条件?
4.简述代码优化所依据的原则与优化的级别,并列举三种常用的优化技术。
正规式用來描述正规集,而有限自动机用來识别正规集,在正规集的意义上它们存在等价关系。
即:
对每一个正规式所代表的正规文法G,都存在一个有限口动机M,使得L(M)=L(G),M所能识别的字的全体恰为这个正规文法G的语言集合:
对每一个有限口动机M,都存在一个可以用正规式表示的正规文法G,使得L(G)=L(M),这个正规文法G的语言集合中的任一个字可以由M识别。
2.对于句子iiiei,该文法具有两棵不同的语法树与之对应,故为二义性文
S
//\\
iSeSi
/\I
1SiiSeS
II
lii
3.当文法满足LL
(1)条件时,可以为它构造一个不带回溯的自上而下分析程序。
它由一组递归过程(函数)组成,每个过程(函数)对应文法的一个非终极符,这样的分析程序称为递归下降分析器。
利用这种分析程序进行语法分析的方法称为递归下降分析法。
4.代码优化所依据的原则是:
等价原则、有效原则和合算原则。
代码优化所依据的级别是:
局部优化、循环优化与全局优化。
常用的代码优化技术有:
删除公共子表达式、删除无用赋值、合并已知量、代码外提、强度削弱、删除归纳变量等。
1.什么是编译器的前端和后端,通常两者之间用什么作为接口?
2.简述NFA和DFA的联系与区别。
3.语法分析方法如何分类?
它们而对的主要问题是什么?
4.何谓中间语言?
简述它的作用。
1.前端主要由与源语言有关但与目标机无关的那些部分组成,通常包括词法分析、语法分析、语义分析与中间代码产生,有的代码优化工作也可包括在前端。
(2分)后端包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成等。
(2分)通常,前端和后端以中间语言作为接口(1分)
2.联系:
NFA和DFA都是有限口动机,都用于接收、识别一定的字符串。
NFA是DFA的推广,DFA是NFA的特例。
(2分)
区别:
NFA多值函数,DFA是单值函数。
NFA可以有多个初态,DFA只有一个初态。
NFA的每条弧允许用上的一个字作标记,DFA的每条弧只允许用E上的一个字符作标记。
(3分)
3.按照语法分析树的建立方法,可以把语法分析方法分为两类:
自上而下分析法与自下而上分析法。
自上而下分析法面对的主要问题是:
如何消除文法的左递归,以及在由文法的开始符出发推导句子的过程中如何避免回溯°
口下而上分析法面对的主要问题是:
在由输入串出发向文法的开始符归约的过程中,如何确定可归约子串(句柄或最左素短语)。
(1分)
4.中间语言是一种面向语法,复杂性介于用高级语言书写的源
程序和用机器语言表示的目标程序之间,是一种易于翻译成目标代码的代码形式。
中间语言的作用在于:
利用它作为中间环节,不仅可以较快地实现源程序翻译过程,而11可在此基础上应用优化方法,将源程序翻译成为运行时间短、占用内存少的目标程序。
1.何谓上下文无关文法?
它是由哪几部分组成的?
1.上下文无关文法是这样一种文法,它所定义的语法范畴(或语法单位)是完全独立于这种范畴所处的环境的。
上下文无关文法由四部分所组成:
一组终极符号,一组非终极符号,一个开始符号以及一组产生式。
NFA的每条弧允许用上的一个字作标记,DFA的每条弧只允许用E上的一个字符作标记°
自上而下分析法与自下而上分析法。
如何消除文法的左递归,以及在由文法的开始符出发推导句子的过程中如何避免回溯。
口下而上分析法而对的主要问题是:
程序和用机器语言表示的目标程序之间,是一种易丁•翻译成目标代码的代码形式。
综合题
构造一个DFA,它接受S={a,b}上所有包含ab的字符串。
2.对文法G(S):
S-(L)|aS|a
L一L,S|S
1、消除左递归和回朔:
2、构造各非终结符的FIRST和FOLLOW集合:
3、构造预测分析表。
3.给出文法G(P)
P-bQbQ-cR
Q-a
R-Qad
该文法是不是算符优先文法,请构造算符优先关系表证实之。
4.
(1)有如下三地址码:
read(n)
i:
=1
fen:
L1:
ifi<
=ngotoL2GotoL3
L2:
t1:
=fen*i
=t1
=i+1
gotoL1
L3:
v/rite(fen)
将该代码段划分为基本块:
并构造相应的程序流图。
(2)对下列四元式序列生成目标代码:
A:
=B*C
D:
=E+F
G:
=A+D
H:
=G*2
其中,H在基本块岀口之后是活跃变量,R0和R1是可用寄存器。
1•构造一个DFA,它接受S={a,b}上所有包含ab的字符串。
构造相应的正规式;
(a!
b)*ab(alb)*
确定化:
I
LL
{0,1,21
fl,2,3|
fl,21
lb2,3|
2,31
"
2,4,、,61
11,21
11,2,31
11,2|
11,2,4.5.61
11,2,3,5,61
lU2,5,6}
fl,2,3,5,6}
!
1,2,3,5,6}
U,2,4,5,6|
11,2,5,61
{1,2,3,5,6[
lb2,5,6!
L-L,SIS
答:
(1)消除左递归和回溯
S->
(L)|aS
S'
fSIe
L-^SV
LfSL‘|e
(2)FIRST(S)=H,a}
FOLLOW(S):
={井,
,)1
FIRST(Sz)={(,a,J
FOLLOW(S)
=1#,
,)}
FIRST(L)={(,a}
FOLLOW(L):
=1)1
FIRST(V)={,,e}
FOLLOW(I/)
-1)1
(3)预测分析表
a
■
(
Sr*aS'
A(L)
s
S"
~S
SJE
—S
fe
-*•e
L
L—SLZ
L—SI/
V
LJ,SC
P-bQb
Q-cR
Qfa
R一Qad
对于文法G,II-算它的每个非终结符的FIRSTVT和LASTVT集合:
FIRSTVT(P)={b|
FIRSTVT(Q)=1a,c!
FIRSTVT(R)=Ia,cj
LASTVT(P)={b!
LASTVT(Q)={c|
LASTVT(R)二1d!
构造优先关系矩阵:
b
C
d
>
<
f
=x
c
4>
J>
文法G中的终结符对(c,a)存在两种优先关系V和汉所以文法G不是一个算符优先文法。
ICTII.—I
=ngotoL2
GotoL3
t1:
解:
基本块1
基本块2
基本块3
基本块4
LDRO,B
MULRO,C
IDRl,E
ADDR1,F
ADDRO,R:
MULRO,2
所有b都有a直接跟在后而。
得分
接跟在后而。
⑴由以上正规式构造相应的NFAMY4分)
O
(2)用子集法对M进行确定化,得到DFAM(4分)
la=e.CLOSURE(J)
lb=£
CLOSURE(J)
£
x,1,y}
d,y}
⑵
{i,y}
{2}
•■
状态
1
2
■■
⑶把DFAM,进行化简(4分)
1把M状态集分为两组:
终态结点{0,1}:
非终态结点{2}
2考察{0,1},因为,{0,1}a={1}包含于{0界};
{0,1}b={2}包含于{2}:
所以,{0,1}不可再分
所以,最终把M分割为{0,1},£
2}o状态1代替状态0,把引向状态0的箭弧都引向状态仁把0消去,得到一个DFAM"
2.设有文法G(X),该文法产生式为:
X-b|&
|(丫)
Y-Y:
X|X
其中X为文法开始符号,b&
:
()为终结符号
(1)消除左递归
(2)汁算每个非终结符号的FIRST集和FOLLOW集
(3)构造它的预测分析表
⑴消除左递归(4分)
X-b|&
|(Y)
丫一XY,
丫'
一:
XY'
Ie
(2)计算每个非终结符号的FIRST集和FOLLOW集(4分)FIRST(X)={b,&
(};
FIRST(Y)={b,&
(};
FIRST(Yf)={:
J;
FOLLOW(T)={)};
FOLLOW(Y^)={)};
FOLLOW(X)={:
}};
⑶构造它的预测分析表(4分)
#
X-b
Xf&
Xi(Y)
Y
Y-XY'
Y~XY‘
Y'
Y,e
Y‘-,XY'
3.设文法G(S):
S-SiA|A
A-A+B|B
B-)A*|(
仁构造各非终结符的FIRSTVT和LASTVT集合:
2、构适优先关系表和优先函数
答:
FIRSTVT(S)={i,+,),(IFIRSTVT(A)-|+,),(}
FIRSTVT(B)-)),(}LASTVT(S)=H,+,*>
(!
LASTVT(A)=|
(4分)
优先函数:
LASTVT(B)-|[
优先关系表:
►
+
*
♦
r
•>
z
黃
十
6
g
4
4.对以下程序
(I)READB
⑵J:
“
⑶A:
=l+2
(4)E:
=I*J
(5)D:
二A+E
(6)B:
=D+B
(7)IfJ>
60goto(10)
(8)J:
=J+1
⑼goto(3)
(10)WRITEB
(II)halt
(1)划分基本块,画出流图
(2)对英中循环进行优化,画出优化后流图
(1)划分基本块,画出流图(6分)
(2)对其中循环进行优化,画出优化后流图(6分)
1.构造一个DFA,它接受艺={0,上所有倒数第二个字符为1的字符串。
2.给出文法(S)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 编译 原理 课程 复习 试题 答案