编译原理试题集78677Word格式文档下载.docx
《编译原理试题集78677Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《编译原理试题集78677Word格式文档下载.docx(109页珍藏版)》请在冰豆网上搜索。
(
)
1.√
2.×
3.×
4.×
5.√
6.×
三.单项选择题
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.下面对编译原理的有关概念正确描述的是:
____。
a.目标语言只能是机器语言b.编译程序处理的对象是源语言。
c.Lex是语法分析自动生成器d.解释程序属于编译程序
7.目标代码生成阶段所生成的目标代码的形式不可能是____。
a.绝对指令代码b.可充定位的指令代码。
c.汇编指令代码d.三地址代码
8.语义错误是指源程序中不符合语义规则的错误,不包括:
____
a.非法字符错误b.类型不一致错误。
c.作用域错误d.说明错误
四.名词解释
1.诊断编译程序、优化编译程序;
2.交叉编译程序、可变目标编译程序;
3.编译程序的“遍”
4.程序设计环境
1.诊断编译程序:
专门用于帮助程序开发和调试的编译程序。
优化编译程序:
着重于提高目标代码效率的编译程序。
2.交叉编译程序:
能产生不同于其宿主机的机器代码的编译程序。
可变目标编译程序:
不需重写编译程序中与机器无关的部分就能改变目标机的编译程
3.编译程序的“遍”:
就是对源程序或者中间结果从头到尾的一次扫描,并做有关的加工
处理,生成新的中间结果或者目标程序。
4.程序设计环境:
支持程序设计人员进行程序设计开发所需要的如编辑程序、编译程序、
连接程序和调试程序等软件工具,一起构成程序设计环境。
五.简答题
1.什么是编译程序的“遍”?
2.什么编译程序、解释程序?
编译程序和解释程序有什么区别?
3.前端编译和后端编译是如何划分的?
4.什么是标识符,什么是名字,它们的区别是什么?
5.如果机器A上已有一个用A机器代码实现的某高级语言L1的编译程序,则可以用L1编写另
一种高级语言L2的编译程序,画出这个实现过程的T形图表示。
6.如何采用“移植”的办法,利用A机器上已有的高级语言L编写能够在B机器上运行的高级
语言L的编译程序?
画出T形图表示。
1.编译程序的“遍”,就是对源程序或者中间结果从头到尾的一次扫描,并做有关的加工
既可以将几个不同阶段合为一遍,也可以把一个阶段的工作分为若干遍。
当一遍中包含
若干阶段时,各阶段的工作是穿插进行的。
一个编译程序究竟应分为几遍、如何划分,是与源语言、设计要求、硬件设备等诸因素
有关的,难以统一规定。
2.编译程序:
把某一种高级语言源程序转换成汇编语言程序或机器语言程序的程序。
解释程序:
对高级语言源程序并不生成汇编程序或机器语言程序,而是边解释边执行的
程序。
编译程序把源语言程序翻译成目标代码,然后由操作系统加载执行;
而解释程序则是边
翻译边执行,不生成目标代码。
根据编译器的工作是与源语言相关还是目标机器有关来进行划分。
编译前端:
编译程序中包括词法分析、语法分析、语义分析和中间代码产生等主要与源
语言程序有关但与目标机无关的那些部分叫编译前端。
编译后端:
编译程序中包括目标代码生成、目标代码优化等与目标机有关而与源语言无
关的那些部分部分叫编译后端。
4.标识符是由字母或数字以及某些特殊符号(因不同的高级语言而不同)组成的,但是必
须以字母开头的一个字符串。
当给某标识符以确切的含义时,这个标识符就叫做名字。
程序语言中的各种名字都是用
标识符表示的。
名字和标识符具有相同的形式,名字使用标识符来描述,但标识符是没有意义的字符序
列,而名字却有确切的意义和属性(即类型和作用域)。
5.
六.应用题
第二章高级语言及其语法描述
1.假设G是一个文法,?
是由终结符和非终结符组成的串,S是文法的开始符号,如果S=>
*α
,则称α是________________________。
2.在赋值语句中,赋值号‘:
=’左右两边的变量名扮演着两种不同的角色,为了区分一个
名字的这两种特征,我们把一个名字所代表的______称为该名的左值,把一个名字的_______
_称为该名字的右值。
3.对于文法G,仅含终结符号的句型称为_________________________。
4.设有文法G[S],其部分产生式:
S->
S;
T
T->
ifEthenS
V:
=E
A
则VN={},VT={
}。
5.由文法产生的_______________________集合是文法产生的语言。
6.Chomsky语法定义的3型文法又可以分为__________________________________。
7.一个上下文文法G的四个组成部分分别是:
________________________________________
_。
8.已知语言:
{anbnambm|n,m≥0},其
语法定义为:
G=({a,b},{S,A,B},S,P),其中P为:
________________________________________________________。
9.已知某语言的语法定义为:
G=({1,0},{S,A},S,P),且P:
S→1A0|A|ε?
;
A→0A1|
ε,则该语言为________________________________。
10.已知某语言为{?
wcwR|?
∈{a,b}*},其语法定义为G=({a,b,c},{S},S,
P),
其中P为:
_________________________________。
11.所谓最右推导是指_________________________________________________________。
12.已知文法G(Z):
E→ET+|T
T→TF*|F
F→FP↑|P
P→E|i
试写出其识别的一个句子:
_____________________。
13.文法G[S]:
S→aA|a,A→aS为_______型文法,其确定的语言的为:
_______。
14.在一棵语法树生长过程中的任何时刻,___________________________________________
_________就是一个句型。
15.我们说G=(VT,VN,S,P)是一个0型文法,如果它的每一个产生
式α→β是这样一种结构:
_________________________________________________________________。
1.句型;
2.单元的地址(或者:
单元、存储单元的地址),值(或者:
单元的内容)
9.
10.
11.
12.
13.
14.
15.
1.一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。
()
2.可能有两个不同的文法G和G“,期中一个是二义的而另一个是无二义的,但是却有L(G)
=L(G“)。
3.变量既持有左值又持有右值,而常数和带有算符的表达式一般认为只持有右值。
4.文法G:
S→bA
A→aA|a
定义的语言是所有以b开头的后跟至少一个a的字符串的集合。
5.设有文法G:
S→S*S|S+S|(S)|a
该文法是二义的。
6.正则文法一定不是二义的。
7.上下文无关文法可以产生语言L={anbnci|i>
=1,
n>
=1}。
8.不存在任何正规文法能产生语言L={anbn|n>
=1}。
9.对于每一个左线性文法G1,都存在一个右线性文法G2,使得L(G
1)=L(G2)。
10.正规文法产生的语言都可以用上下文无关文法来描述。
11.上下文无关文法比正规文法有更强的描述能力。
12.文法的二义性和语言的二义性在概念上是相同的,也就是说,对于某个语言,不可能存
在两个以上的文法来描述它。
13.二义性是可以判定的,也就是说,可以编这么一个程序,输入该文法后,该程序能确切
地给出该文法是否二义的答案。
14.说明语句旨在定义名字的性质。
编译程序把这些性质登记在符号表中,并检查程序中名
字的引用和说明是否一致。
实际上,许多说明语句并不能翻译成相应的目标代码。
15.C语言是一个允许子程序嵌套定义的语言。
1.Chomsky把文法分成四种类型,0型、1型、2型和3型。
3型文法也称为__________,2型文
法也称为_________。
a.上下文无关文法b.上下文相关文法c.正则文法d.短语文法
2.许多广为使用的语言,如Fortran、C、Pascal等,属于___________。
a.强制式语言b.应用式语言c.基于规则的语言d.面向对象的语言
3.设G是一个文法,S是开始符号。
若S⇒*α,α∈(VT∪VN)*,则
称α是一个______。
a.句子b.句型c.推导d.语言
4.一个数据类型通常包括的三种要素中,没有下面的______。
a.用于区别这种类型的数据对象的属性;
b.这种类型的数据对象可以具有的值;
c.对这种类型的数据对象的内存分配;
d.可以作用于这种类型的数据对象的操作;
5.Chomsky把文法分成四种类型,其中,______也称正规文法
a.0型b.1型c.2型d.3型
6.语言的词法规则一般用Chomsky的______型文法来描述:
a.0b.1c.2d.3
7.文法
S→(L)|a
L→L,S|S
中,下面是该文法中的终结符号。
a.Sb.,c.Ld.|
8.文法G所描述的语言是_______的集合。
a.文法G的字母表?
中的所有符号组成的符号串;
b.文法G的字母表?
的闭包?
*中的所有符号串;
c.文法G的识别符号推出的所有符号串;
d.文法G的识别符号推出的所有终结符号串;
9.语言L={αcα|α∈(a|b)*},该语言是_____________语言。
a.3型语言,b.2型语言,c.1型语言,d.0型语言
10.设有文法G:
I→I1|I0|Ia|Ic|a|b|c|
下面符号串中不是该文法的句子是:
a.ab0,b.a0c01,c.aaa,d.bc10
11.给定文法A→bA|cc,下面的符号串中,是该文法句子的是________。
a.bcbc,b.bbbcc,c.bcbcc,d.bccbcc;
12.Chomsky定义的四种形式语言文法中,2型文法可由_______识别。
a.图灵机;
b.确定性有限自动机;
c.下推自动机;
d.非确定性有限自动机;
13.若文法G定义的语言是无限集,则文法必然是__________。
a.上下文无关的b.递归的c.二义性的d.无二义性的
14.文法S→aaS|abc定义的语言是_______。
a.{a2kbc|k>
0}b.{akbc|k>
0}c.{a2k-1bc|k>
0}d.{akakbc|k>
0}
15.文法:
G:
S→xSx|y所识别的语言是________。
a.xyxb.(xyx)*c.x*yx*d.xnyxn(n≥0)
1.二义性文法;
2.推导和直接推导;
3.句型,句子和语言;
4.上下文无关文法;
5.语法;
6.正规文法(左线性文法和右线性文法);
1.作为描述程序语言的上下文无关文法,对它有哪些限制?
2.什么是二义性文法?
从输入串abab来说明下面文法二义吗?
S→aSbS|bSaS|ε
该文法产生的语言是什么?
3.文法G[S]为:
S→Ac|aB
A→ab
B→bc
该文法是否为二义的?
为什么?
4.已知文法G=({A,B,C},{a,b,c},P,A),P由以下产生式组成:
A→abc
A→aBbc
Bb→bB
Bc→Cbcc
bC→Cb
aC→aaB
aC→aa
此文法所表示的语言是什么?
5.已知文法G[Z]:
Z→0U|1VU→1Z|1
V→0Z|0
(1)请写出此文法描述的只含有4个符号的全部句子。
(2)G[Z]产生的语言是什么?
(3)该文法在Chomsky文法分类中属于几型文法?
1.试分析下面给出的if-then-else语句的文法,它的提出原本是为了矫正dangling-else(e
lse悬挂)文法的二义性:
stmt→ifexprthenstmt|matched-stmt
matched-stmt→ifexprthenmatched-stmtelsestmt|other
expr→e
考虑句子ifethenifethenotherelseifethenotherelseother,试说明此文
法仍然是二义性的。
2.考虑文法G[bexpr]:
bexpr→bexprorbterm|bterm
bterm→btermandbfactor|bfactor
bfactor→notbfactor|(bexpr)|true|false
(a)请指出此文法的终结符号、非终结符号和开始符号。
(b)试对于句子not(trueorfalse)构造一棵分析树。
(c)试说明此文法所产生的语言是全体布尔表达式。
3.已知文法G[S],其产生式为:
S→(S)|ε?
(a)L(G)是什么?
(b)对于(a)的结果,请给出证明。
4.试构造生成下列语言的上下文无关文法:
(1){anbnci|n≥1,i≥0}
(2){w|w∈{a,b}+,且w中a的个数恰好比b多1}
(3){w|w∈{a,b}+,且|a|≤|b|≤2|a|}
(4){w|w是不以0开始的奇数集}
5.已知文法G[S]:
S→AB
B→bB|b
求该文法所定义的语言。
6.考虑下面上下文无关文法G[S]:
S→SS*|SS+|a
(1)对于符号串aa+a*分别给出最左推导和最右推导过程,并为该串构造语法树。
(2)G[S]的语言是什么?
7.令文法G为
N→D|ND
D→0|1|2|3|4|5|6|7|8|9
(1)G的语言L(G)是什么?
(2)给出句子0127、34和568的最左推导和最右推导。
8.写一个文法,使其语言是奇数集,且每个奇数不以0开头。
9.写一个上下文无关文法CFG,使其语言是能被5整除且不以0开头的无符号整数的集合。
(
如{5,10,15,….})
10.证明下面的文法是二义的:
S→iSeS|iS|i
11.
某程序设计语言的表达式由运算符θ1、θ2、θ3、
标识符、(、)组成,其中θ1和θ2的优先级相同,θ3
的优先级低于θ1、θ2的优先级,优先级相同的运算符从右往左
计算,可以用括号改变运算的顺序,则下述四种文法中哪一个可以描述上述的表达式文法?
设E为识别符号,终结符号集={θ1、θ2、θ3、
(、)、I},非终结符号集={E、T、F}。
a.E→T|Eθ1T|Eθ2T
T→F|Tθ3F
F→(E)|I
b.E→T|Tθ1E|Tθ2E
T→F|Fθ3T
c.E→T|Eθ3T
T→F|Tθ1F|Tθ2F
d.E→T|Tθ3E
T→F|Fθ1T|Fθ2T
第三章词法分析
1.词法分析器对扫描缓冲区进行扫描时一般用两个指示器,一个_______________________
__________;
另一个_____________________________________。
————————————————————————————;
—————————
—————————————————___________________________;
2.一个确定性有限自动机DFAM的化简是指:
寻找一个状态数比M少的DFAM’,使得______
__________。
3.词法分析器所的输出常表示成如下形式的二元式:
(______________,_______________
__)。
4.一个状态转换图只包含有限个状态,其中有一个被认为是________,而且实际上至少有
一个________。
5.把状态转换图用程序实现时,对于含有回路的状态结点来说,可以让它对应一个_______
______________________________程序段。
6.词法分析阶段的任务式从左到右扫描_____________,从而逐个识别______________。
7.如果一个种别只含有一个单词符号,那么,对于这个单词符号,__________就可以完全
代表它自身了。
8.单词符号的属性值是指单词符号的特性或特征,其属性值则是反映特性或特征的值。
比
如,对于某个标识符,常将_________________________________________________作为其属
性值。
9.单词符号的属性值是指单词符号的特性或特征,其属性值则是反映特性或特征的值。
如,对于常数,常将__________________________________________作为其属性值。
10.如果一个种别含有多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以
外,还应给出有关__________________________。
11.如果_______________________________,则认为这两个正规式等价。
12.对于?
*中的任何符号串?
,如果存在一条从初态结点到某一终态结点的通路,且________
___________________________,则称?
被该自动机所接受(识别)。
13.一个Lex源程序主要包括两