贵州财经大学编译原理复习资料讲解Word格式文档下载.docx
- 文档编号:17066050
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:47
- 大小:229KB
贵州财经大学编译原理复习资料讲解Word格式文档下载.docx
《贵州财经大学编译原理复习资料讲解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《贵州财经大学编译原理复习资料讲解Word格式文档下载.docx(47页珍藏版)》请在冰豆网上搜索。
()答案:
(5)编译程序是应用软件。
(6)编译程序的基本组成中,词法分析、语法分析和语义分析应该是有序的。
对
(7)“遍”是指对源程序的从头到尾扫描。
(8)用高级语言书写的源程序都必须通过翻译,产生目标代码后才能运行。
(9)含有优化功能的编译程序执行效率高。
(10)解释程序和编译程序的不同在于,解释程序根据语法翻译成目标代码并立即执行之,而编译程序需产生中间代码及优化。
()答案:
1-3简答题
(I)什么是编译程序?
答:
把用某一种程序设计语言编写的源程序翻译成等价的另一种语言程序(目标程序)的
程序,称之为编译程序。
(2)源程序的编译执行和解释执行的主要区别是什么?
一般编译程序从对源程序执行途径的角度不同,可分为解释执行和编译执行。
所谓解释执行是借助于解释程序完成,即按源程序语句运行时的动态结构,直接逐句地边分析边翻译并执行。
像自然语言翻译中的口译,随时进行翻译。
所谓编译执行,是将源程序先翻译成一个等价的
目标程序,然后再运行此目标程序,故编译执行分为编译阶段和运行阶段。
两种执行方式的主要区别是:
编译执行是由编译程序生成一个与源程序等价的目标程序,它可以
完全取代源程序,目标程序可运行任意多次,不必依赖编译程序。
正像自然语言翻译中的笔译,一次翻译可多次阅读。
而解释执行不生成目标程序,对源程序的每次执行都伴随着重新翻译的工作,而且不能摆脱翻译程序。
(3)典型的编译程序在逻辑功能上由哪几部分组成?
各部分的功能是什么?
典型的编译程序在逻辑功能上由词法分析、语法分析、语义分析与中间代码生成、代码优化及目标代码生成五部分组成。
各部分的简要功能是:
1词法分析的任务是对输入的符号串形式的源程序进行最初的加工处理。
它依次扫描读入的
源程序中的每个字符,根据源语言的词法规则识别出源程序中有独立意义的单词,用某种特定的数据结构对它的属性予以表示和标注。
2语法分析的任务是:
在词法分析基础上,依据源语言的语法规则,对词法分析的结果进行语法检查,并识别出单词符号串所对应的语法范畴。
依据源语言的语义规则对语法分析所识别的语法范畴③语义分析与中间代码生成的任务是:
进行语义检查并分析其含义,翻译成与其等价的中间代码。
④代码优化是为了改进目标代码的质量而在编译过程中进行的工作。
代码优化可以在中间代码或目标代码级上进行,其实质是在不改变源程序语义的基础上对其进行加工变换,以期获得更
高效的目标代码。
而“高效”一般是指,对所产生的目标程序缩短其运行时间和节省存储空间。
⑤目标代码生成的功能是:
根据中间代码及编译过程中产生的各种表格的有关信息,最终生成所
期望的目标代码程序。
(4)编译程序实现的途径有哪些?
编译程序的实现途径即实现方式一般可以用高、中级程序设计语言编程实现,可以通过移植的方式实现,可以通过自编译的方式,还可以通过部分自动生成的方式实现。
(5)为不同目标机编写相同源语言的编译器时,其设计变化最大的是后端,为什么?
在编译程序构成的经典划分中,词法分析、语法分析及语义分析中间代码生成称为编译程序的前端,代码优化及代码生成称为后端。
涉及前端的功能仅与源语言的词法、语法及语义相关适于自动生成。
对后端实现的代码优化和代码生成,鉴于不同的目标机具有不同的体系结构和指令系统,代码优化和代码生成需要基于特定的目标机来设计和实现。
(6)简述编译程序中“出错处理”程序的作用。
答:
“出错处理”作为编译程序的一个不可或缺的公共程序,其主要作用是对在编译过程中扫描、翻译源程序时根据文法规则和语义规则诊断源程序中存在的错误,对错误进行定性、定位和
必要的容错处理。
这样可以协助程序员及时准确地发现源程序中的错误,以提高调试程序的效率,
方便用户修改程序,并能把错误限制在尽可能小的范围里。
(7)为不同目标机编写相同源语言的编译器时,其设计变化最大的是后端,为什么?
(8)简述编译程序中“出错处理”程序的作用。
“出错处理”作为编译程序的一个不可或缺的公共程序,其主要作用是对在编译过程中扫描、翻译源程序时根据文法规则和语义规则诊断源程序中存在的错误,对错误定性、定位和必要的容错处理。
这样可以协助程序员及时准确地发现源程序中的错误,以提高调试程序的效率,方便用户修改程序,并能把错误限制在尽可能小的范围里。
第二章:
2.2习题
2-1)选择、填空题
设有字母表A={0},A-={
...000,00,0,答案:
用于描述另一种语言的语言称为答案:
元语言文法。
递归答案:
A.源语言
答案:
,下列叙述中正确的是
的符号集(5)设有文法GV,非终结符集
,终结符集
B.V=
V=
设文法(6G(S)为:
D.V=C.V=
0AS
A.D
B0|0S
则L(G(S))为
。
A.
B...
C.
D.
(7)设有文法
G(S)为
S(B)a
BBb|b|
下列叙述错误的是
A.G是2型文法
C.D.有文法G'
为S答案:
B.
()a|(B)a
BbB|b,贝UG'
=G
(8)给定文法G(S):
S
0S|1A|0
1|1S|0B1A|0B
曰
下列符号串是L(G)中元素的是
A.10100010011011
C.110101*********1
B.010*********
D.1010011101101010
(9)设有文法G(S):
S
D.bc10C.aaa
S1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是
A.ab0B.a0c01
:
G(S)设有文法(10).
SBs|Aa|一
bA|AcA
bCaS|a
下列符号串是L(G)中元素的是匸;
◎
A.B.C.D.
D
(11)设有文法G(S):
SaA|bC|a
AaS|Bb
1B
(3)—个文法所描述的语言是一个无限集合,则该文法一定是-
⑷下面不能用于对文法进行描述的是D.语法图C.BNFB.EBNF
C.S
D.S
AB|B
Abc|A
aA|a
BbBc|bc
B、C---
(16)给岀语言L(G)=
,其相应的文法
G为
日…ID
o
A.S
aSc|B
bB|b
B.S
aS|T
T
bTc|bc
C.S
D.S
AB|A
(17)设有语言L(G(S))={a}
'
{b},下面描述该语言正确的文法是
AB
Aa|
Bb|b-
AB|AS
Aa|a
Bb
BBb|
D.SSA|AAaAb|a
(18)设有语言L(G)={由于相同个数(0或n)的a和b组成的句子},满足对L(G)描述的正确的文法是禾口
I*~。
—■一MlT■I
A.SabS|B.SaSbS|bSaS|i|
C.SaSb|ab|D.SSS|aSb|bSa||门
B、D
(19)设定义在字母表{a,b,c,x,y,z}上的正规式r=(a|b|c)(x|y|z),则L(r)中元素有
A.9B.6C.18D.27
(20)正规集L={a'
|nO}相应的正规式是。
-.
G(S):
有文法(23).
Ax|BySy|AyAx|y
下面与文法G(S)表示相同语言的正规式是。
A.y'
x|xy|yB.y'
x|x|xy
C.yy'
X|xy|yD.yy'
x|xy|xy
(24)有文法G(S):
SdA
Aa|aB
BaB|a|b|Bc
CbC|b
下面与文法G(S)表示相同语言的正规式是。
I‘F’—,-
b'
D.daa'
C.daaB.daa'
b'
A.daa'
bb
(25)设有文法G(S):
AB|ASS
aA|aA
b
文法G(S)与下面正规式等价的是
B.aa■b
C.(ab)■A.aa
■D.a(ab)'
bb'
(26)设文法G(S)aS|Sb|a|b
贝戊法G(S)所识别语言的正规式为
:
G(A)(27)设文法Sab|bRS
S|a
R
}。
G(S)的语言L(G(S))={I:
心"
;
二」
设文法(28)G(A):
[BA
X]|BA
Xa|Xb|a|b
X
G(A)则文法所识别语言的正规式为
--r
(29)设文法
aaV|bc
V:
G(V).
该文法对应的语言
I
L(G)
1
(30)已知语言:
aWbW
则文法G(S)是
aaSb|ab|bb答案:
(31)设有语言:
aAb|ab
是G(S),则文法i.■i-
Sc|A答案:
A—
,则它2型语言为:
(32)已知2型文法G(S)相对应的
的文法G(S)可描述为
aSb|A答案:
SbAa|ba
•有限状态集合DC.终止状态集合
等价是指N(34)有限自动机M和N状态数和有向边数相等
A.M和N的字母表相同
识别的字符串集合相同D.M和NMC.和N状态数或有向边数相等
。
(35)如果一个正规式所代表的集合是无穷的,则该正规式必含有的运算是
.或运算“|BA.连接运算
()”C.闭包运算“*”D.括号
C答案:
判断题2-2*
)(
(1)设有文法符号集V,则
G1=G2(3)有文法,则L(G1)=L(G2)。
)一个语言的文法是不唯一的。
(4
5()元语言是描述另一种语言的语言。
()
BNF)6(是一种广泛被采用的描述文法的工具。
的闭包。
G)文法G所描述的语言就是的终结符号集()(7答案:
错匚
()
2()一部文法G的文法符号不属于
对
对答案:
nt'
Kcrsr
V=,r是文法G(S)的句型当且仅当S=>
r,(,P,S8()对于文法G(S)=,r,且’,
r是文法G(S)的句子当且仅当S=>
()且rV答案:
(9)文法G的一个句子对应于多个推导,则G是二义的。
错
(10)对给定的文法G(S),若至少有一个句型存在两个或两个以上不同的最左(或最右)
推导,这是判断G是二义文法的充分非必要条件。
(11)
,若至少有一个句型存在两棵或两棵以上的不同的树,是判断G
对给定的文法G(S)
是二义文法的充分必要条件。
(12)
—棵分叉树反映了其叶节点从左向右连接形成的句型的任意推导情况。
(13)
NFA和DFA的区别之一是映射函数是否唯一。
(14)
一个正规式只能等价于一个确定的有限状态自动机。
(15)
其状态图中初态无射入弧,终态无射
任意有限自动机都鞥转化为一等价的特殊自动机;
出弧。
(16)对任何正规集L,都有正规式L(r)=Lo
(17)设有r和s都是非€的正规式,则有L(rs)=L(s
(18)使用正规式运算能够描述定义在字母表上的所有符号串集合。
3型文法也称为正规文法,
(19)乔姆斯基把文法分为四种类型,即0型、1型、2型、3型
2型文法是短语文法。
(20)正规式产生的语言都可以用上下文法来描述。
(21)对任何正规式r,都存在一个NFAM,满足L(M)=L(r)
(22)正规文法、正规式、NFA和DFA在接受语言的能力上是相互等价的
(23)自动机M1和M2状态数不同,则二者必不等价。
(24)一个有限自动机只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
()•
错则该有限自动机的状态图一定含有回(25)—个有限自动机识别的语言是一个无限集合,()路。
对()(26)如果一个有限自动机接受空串€,则他的状态转换图一定含有€弧。
()(27)—个确定的有限自动机,可以通过多条路识别一个符号串。
()(28)NFA的确定化算法具有消除€弧的功能。
对)(29)正则文法一定不是二义文法。
(答案:
错二卜;
闻和,一
定存在一个有线性文法,使得L((30)对每一个左线性文法)=L()。
)(
简答题2—3
(1)乔姆斯基分类法按照什么原则对文法进行分类?
分成了几类?
各有什么样的特点?
按产
生式的不同对文法进行分类。
分为4类:
0型:
产生式无限制。
|%]1型:
产
生式限制为形如
2型:
产生式限制为形如A二,
3型:
产生式限制为形如A或A或者(AB或A)。
(2)简要概述分析树的概念及其作用。
分析树的根节点是文法的开始符号,结点间的父子关系为产生式规则,即若父节点标识为A,子结点从左到右依次标识为,,则在文法中存在一产生式At,一棵分析树的从左到右的叶
结点,就形成了由该分析树表示的推导岀的句型。
分析树的生长过程是一个句子的推导过程,分析树额可以直观形象的表示经推导而产生的句子结
构,有助于理解句子的语法结构层次。
(3)如何判断一部文法是二义文法?
对一部文法G,如果至少存在一个句子,对应两棵(或两棵以上)不同的分析树或有两个不同的最左推导,则这个文法是二义性的。
(4)简述正则表达式与有限自动机的等价性的证明思路,并简要说明每步要完成的基本工作或
要解决的关键问题是什么?
正则表达式与有限自动机的等价性的证明思路为正规式的合成与分解,或状态转换函数的
合成与分解。
•
正则表达式t有限自动机:
每步的基本工作是完成正规式的分解,即分解状态转换函数,增加状
态图中的状态或弧。
有限自动机T正则表达式:
每步的基本工作是完成正规式的合成,即合成状态转换函数,减少状
(5)简述NFA和DFA的区别。
NFA和DFA的区别是:
NFA的状态转换函数值是一个状态子集,反映在状态转换图上即从一状态结点岀发可以有不止一条同一标记的弧。
NFA可以带€转换(不处理任何符号,就进行状态转换)。
第三章:
3.2习题
3-1选择、填空题
(1)词法分析器的输入是。
D、目标程
A、单词符号串B、源程序C、语法单位
序
(2)设有C语句的程序如下:
while(i&
&
++j)
{
c=2.19;
j+=k;
i++;
}
则经过词法分析后可以识别的单词个数是个。
一
A、19B、20C、21D、23
(3)下列选项中,不属于预处理程序要完成的功能的是。
.
A、滤掉源程序中的注释B、查找源程序中无用字符
C、运行宏替换D、实现文件包含的嵌入和条件编译的
嵌入
(4)编译过程中扫描器的任务包括。
1、组织源程序的输入
2、按词法规则分隔单词,识别岀其属性,并转换成token串输岀
3、删除注释
4、删除空格或无用字符
5、行计数,列计数
6、发现并定位词法错误
7、建立符号表
1234567、D123467、C23467、B2347、A.
(5)将识别各类单词的有限自动机合并后得到的有限自动机
定疋DFA
D、是最小的DFA
形势,也是单词在编译程
D、外部
和。
.——
A、可能是NFA也可能是DFAB、
C、一定是NFA
(6)属性字是词法分析器对源程序中各单词处理后的
序处理过程中的一种内部表示。
A、输入B、内部C、输岀
(7)算术表达式123+45.6,词法分析后,下面的合法单词是
A、十进制数123B、符号串123
D、十进制数45.6
C、数字串123答案:
AD
(8)
A、10E、9
(9)在词法分析阶段不能识别的是
A、标示符E、运算符
(10)词法分析程序的输入是
源程序字符串、属性字符流
C、7D、6
C、四元式D、常数
,输岀是。
单位。
C语言中的表达式a+++++++=1,词法分析后,能识别岀的单词个数是
(11)单词就是语言中具有独立意义的最小答案:
语法
(12)属性字的二兀组的表示式为。
<属性,值>
(13)构造识别单词的有限自动机时一般先对单词进行分类,构造识别各类单词的有限自动机,
然后各类有限自动机,构成一个能识别语言所有单词的有限自动机。
合并
(14)程序设计语言的单词符号一般分为:
关键字、、、运算符和界符。
..
标识符、常量
(15)词法分析基于型文法进行,即识别的单词是该类文法的句子。
3
3-2判断题
(1)
Lex是典型的词法分析程序。
(2)
词法分析的依据是源语言的文法规则。
(3)
源程序中的单词是具有独立意义的短语。
(4)
单词的属性字一般应该包括单词类别和单词。
(5)
编译的预处理程序的处理对象是源程序。
inti;
词法分析后识别岀int、int、lint在C语言中的一个语句(6)
和;
四个单词。
(7)一个字母或数字在C语言中不一定是单词,因为他们不一定具有独立的意义。
(8)构造识别单词的有限自动机时,先要对程序语言的单词按类构造岀相应的有限自动机。
()答案:
3-3简答题
(1)词法分析的任务是什么?
词法分析的任务是对输入的字符串形势的源程序按顺序进行扫描,在扫描的同时,根据源语言的词法规则识别具有独立意义的单词,并产生与其等价的属性字流作为输出。
(2)词法分析程序的基本功能有哪些?
词法分析的实质是什么?
词法分析的基本功能是读入字符串形势的源程序并识别出具有独立意义的最小语法单位单词,然后将单词变换成带有单词性质且定长的属性字。
词法分析的实质是依据词法规则,从读入的源程序中识别出具有独立意义的最小语法单位。
(3)词法分析中识别的单词具有什么特征?
识别的依据是什么?
词法分析中识别的单词具有的特征是具有独立意义并是最小语法单位,不满足任何一个条件
都不是单词,识别的依据是词法规则。
(4)简述构造识别单词的有限自动机的方法与步骤。
构造识别单词的有限自动机的方法与步骤如下:
对程序语言的单词按类构造出相应的状态转换图。
对各类状态转换图进行合并,构成一个能识别语言所有单词的状态转换图,其合并方法为:
将各类单词的状态转换图的初始状态合并为一个唯一的初态。
化简并调整冲突的状态编号。
(5)实际的词法分析程序一般带有预处理子程序,简述预处理子程序的主要功能。
预处理子程序一般完成的主要功能是滤掉源程序中的注释、删除源程序中无用字符、进行宏替换、实现文件包含的嵌入和条件编译的嵌入登。
(6)何为超前搜索技术?
在对源程序扫描过程中,比一般单词的识别超前搜索了多个符号后才得以确认为一单词的搜索技术成为超前搜索技术。
3-4有如下C语言源程序段
intm;
m=3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贵州 财经大学 编译 原理 复习资料 讲解