#编译原理复习题.docx
- 文档编号:29070829
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:28
- 大小:65.05KB
#编译原理复习题.docx
《#编译原理复习题.docx》由会员分享,可在线阅读,更多相关《#编译原理复习题.docx(28页珍藏版)》请在冰豆网上搜索。
#编译原理复习题
填空题
按Chomsky分类法,文法按照___规则定义的形式__进行分类。
词法分析基于__正则___文法进行,即识别的单词是该类文法的句子。
分析句型时,应用算符优先分析技术时,每步被直接归约的是__最左素短语___,而应用LR分析技术时,每步被直接归约的是___句柄__。
扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
一个文法能用有穷多个规则描述无穷的符号串集合<语言)是因为文法中存在有___递归__定义的规则。
语义分析阶段所生成的与源程序等价的中间表示形式可以有__逆波兰___、___四无式表示__与___三元式表示__等。
编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码生成,代码优化等几个基本阶段,同时还会伴有__表格处理___和___出错处理__。
从功能上说,程序语言的语句大体可分为__执行性___语句和__说明性___语句两大类。
计算机执行用高级语言编写的程序主要有两种途径:
___解释__和__编译___。
一个LR分析器包括两部分:
一个总控程序和___一张分析表__。
语法分析基于__上下文无关___文法进行,即识别的是该类文法的句子。
语法分析的有效工具是__语法树___。
在使用高级语言编程时,首先可通过编译程序发现源程序的全部__语法___错误和语义部分错误。
编译方式与解释方式的根本区别在于__是否生成目标代码___。
递归下降法不允许任一非终极符是直接__左___递归的。
局部优化是在__基本块___范围内进行的一种优化。
一个典型的编译程序中,不仅包括__词法分析___、__语法分析___、__中间代码生成___、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
语法分析器的输入是__单词符号串___,其输出是__语法单位___。
自底向上的语法分析方法的基本思想是:
从输入串入手,利用文法的产生式一步一步地向上进行___直接归约__,力求归约到文法的__开始符号___。
产生式是用于定义___语法成分__的一种书写规则。
对编译程序而言,输入数据是___源程序__,输出结果是__目标程序___。
若源程序是用高级语言编写的,___目标程序__是机器语言程序或汇编程序,则其翻译程序称为__编译程序__。
一个句型中的最左简单短语称为该句型的___句柄__。
语法分析是依据语言的__语法___规则进行的,中间代码产生是依据语言的__语义___规进行的。
自顶向下的语法分析方法的基本思想是:
从文法的__开始符号____开始,根据给定的输入串并按照文法的产生式一步一步的向下进行__直接推导____,试图推导出文法的__句子____,使之与给定的输入串___匹配___。
常用的参数传递方式有___传地址__,传值和传名。
对于文法的每个产生式都配备了一组属性的计算规则,称为__语义规则___。
扫描器的任务是从__源程序___中识别出一个个___单词符号__。
一个名字的属性包括__类型___和__作用域___。
语法分析最常用的两类方法是___自上而下__和___自下而上__分析法。
自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。
一、选择
1.将编译程序分成若干个“遍”是为了_B__。
A.提高程序的执行效率
B.使程序的结构更加清晰
C.利用有限的机器内存并提高机器的执行效率
D.利用有限的机器内存但降低了机器的执行效率
2.正规式MI和M2等价是指__C__。
A.MI和M2的状态数相等
B.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等
D.Ml和M2状态数和有向弧条数相等
3.中间代码生成时所依据的是_C_。
A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
4.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。
A.语法分析
B.文法分析
C.语言分析
D.解释分析
5.语法分析器则可以发现源程序中的___D__。
A.语义错误
B.语法和语义错误
C.错误并校正
D.语法错误
6.解释程序处理语言时,大多数采用的是__B___方法。
A.源程序命令被逐个直接解释执行
B.先将源程序转化为中间代码,再解释执行
C.先将源程序解释转化为目标程序,再执行
D.以上方法都可以
7.如果L(M1>=L(M2>,则M1与M2(A>
A.等价
B.都是二义的
C.都是无二义的
D.它们的状态数相等
8.有限状态自动机能识别(C>
A.上下文无关文法
B.上下文有关文法
C.正规文法
D.短语文法
9.由文法的开始符经0步或多步推导产生的文法符号序列是(C>
A.短语
B.句柄
C.句型
D.句子
10.产生正规语言的文法为(D>
A.0型
B.1型
C.2型
D.3型
11.任何算符优先文法(D>优先函数
A.有一个
B.没有
C.有若干个
D.可能有若干个
12.采用自上而下分析,必须(C>
A.消除左递归
B.消除右递归
C.消除回溯
D.提取公共左因子
13.在规范归约中,用(B>来刻画可归约串。
A.直接短语
B.句柄
C.最左素短语
D.素短语
14.如果文法是无二义的,那么规范归约是指(B>
A.最左推导的逆过程
B.最右推导的逆过程
C.规范推导
D.最左归约的逆过程
15.使用间接三元式表示法的主要目的(A>
A.便于优化处理
B.便于表的修改
C.节省存储空间
D.生成中间代码更容易
16.文法G所描述的语言是_C____的集合。
A.文法G的字母表V中所有符号组成的符号串
B.文法G的字母表V的闭包V*中的所有符号串
C.由文法的开始符号推出的所有终极符串
D.由文法的开始符号推出的所有符号串
17.文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是___B__。
A.短语文法
B.正则文法
C.上下文有关文法
D.上下文无关文法
18.一个上下文无关文法G包括四个组成部分,它们是:
一组非终结符号,一组终结符号,一个开始符号,以及一组__D___。
A.句子
B.句型
C.单词
D.产生式
19.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。
A.模拟执行器
B.解释器
C.表格处理和出错处理
D.符号执行器
20.一个句型中的最左_B____称为该句型的句柄。
A.短语
B.简单短语
C.素短语
D.终结符号
21.若一个文法是递归的,则它所产生的语言的句子__A___。
A.是无穷多个
B.是有穷多个
C.是可枚举的
D.个数是常量
22.词法分析器用于识别___C__。
A.句子
B.句型
C.单词
D.产生式
23.在自底向上的语法分析方法中,分析的关键是__A___。
A.寻找句柄
B.寻找句型
C.消除递归
D.选择候选式
24.在LR分析法中,分析栈中存放的状态是识别规范句型___C__的DFA状态。
A.句柄
B.前缀
C.活前缀
D.LR(0>项目
25.若文法G定义的语言是无限集,则文法必然是___A__
A.递归的
B.前后文无关的
C.二义性的
D.无二义性的
26.四种形式语言文法中,1型文法又称为__A___文法。
A.短语结构文法
B.前后文无关文法
C.前后文有关文法
D.正规文法
27.__B___和代码优化部分不是每个编译程序都必需的。
A.语法分析
B.中间代码生成
C.词法分析
D.目标代码生成
28._B____是两类程序语言处理程序。
A.高级语言程序和低级语言程序
B.解释程序和编译程序
C.编译程序和操作系统
D.系统程序和应用程序
29.文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是___D__。
A.短语文法
B.正则文法
C.上下文有关文法
D.上下文无关文法
30.__A___是一种典型的解释型语言。
A.BASIC语言
B.C语言
C.FORTRAN语言
D.PASCAL语言
31.与编译系统相比,解释系统___D__。
A.比较简单,可移植性好,执行速度快
B.比较复杂,可移植性好,执行速度快
C.比较简单,可移植性差,执行速度慢
D.比较简单,可移植性好,执行速度慢
32.用高级语言编写的程序经编译后产生的程序叫__B___。
A.源程序
B.目标程序
C.连接程序
D.解释程序
33.把汇编语言程序翻译成机器可执行的目标程序的工作是由__A___完成的。
A.编译器
B.汇编器
C.解释器
D.预处理器
34.如果文法G是无二义的,则它的任何句子___A__。
A.最左推导和最右推导对应的语法树必定相同
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
35.构造编译程序应掌握___D___。
A.源程序
B.目标语言
C.编译方法
D.以上三项都是
36.四元式之间的联系是通过__B___实现的。
A.指示器
B.临时变量
C.符号表
D.程序变量
37.表达式(┐A∨B>∧(C∨D>的逆波兰表示为___B__。
A.┐AB∨∧CD∨
B.A┐B∨CD∨∧
C.AB∨┐CD∨∧
D.A┐B∨∧CD∨
38.优化可生成__D___的目标代码。
A.运行时间较短
B.占用存储空间较小
C.运行时间短但占用内存空间大
D.运行时间短且占用存储空间小
39.下列__C____优化方法不是针对循环优化进行的。
A.强度削弱
B.删除归纳变量
C.删除多余运算
D.代码外提
40.编译程序使用__B___区别标识符的作用域。
A.说明标识符的过程或函数名
B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次
D.标识符的行号
41.编译程序绝大多数时间花在___D__上。
A.出错处理
B.词法分析
C.目标代码生成
D.表格管理
42.编译程序是对__D___。
A.汇编程序的翻译
B.高级语言程序的解释执行
C.机器语言的执行
D.高级语言的翻译
43.在规范归约中,用__B___来刻画可归约串。
A.直接短语
B.句柄
C.最左素短语
D.素短语
44.间接三元式表示法的优点为__A___。
A.采用间接码表,便于优化处理
B.节省存储空间,不便于表的修改
C.便于优化处理,节省存储空间
D.节省存储空间,不便于优化处理
45.基本块内的优化为___B__。
A.代码外提,删除归纳变量
B.删除多余运算,删除无用赋值
C.强度削弱,代码外提
D.循环展开,循环合并
46.在目标代码生成阶段,符号表用___D__。
A.目标代码生成
B.语义检查
C.语法检查
D.地址分配
47.堆式动态分配申请和释放存储空间遵守__D___原则。
A.先请先放
B.先请后放
C.后请先放
D.任意
48.文法G产生的_D.___的全体是该文法描述的语言。
A.句型
B.终结符集
C.非终结符集
D.句子
49.一个文法所描述的语言是____A___
A.唯一的
B.不唯一的
C.可能唯一,
D.可能不唯一
50.描述一个语言的文法是___B___。
A.唯一的
B.不唯一的
C.可能唯一
D.可能不唯一
51.数组的内情向量中肯定不含有数组的____A___的信息
A.维数
B.类型
C.维上下界
D.各维的界差
52.两个有穷自动机等价是指它们的C。
A.状态数相等
B.有向弧数相等
C.所识别的语言相等
D.状态数和有向弧数相等
53.设a,b,c为文法的终结符,且有优先关系a≡b和b≡c,则D。
A.必有a≡c
B.必有c≡a
C.必有b≡a
D.选项A、B和C都不一定成立
54.生成中间代码时所依据的是C。
A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
55.基本块A
A.只有一个入口语句和一个出口语句
B.有一个入口语句和多个出口语句
C.有多个入口语句和一个出口语句
D.有多个入口语句和多个出口语句
56.若a为终结符,则A→α.aβ为__A__
A.移进项目
B.归约项目
C.接受项目
D.后继项目
57.同心集的合并不会产生__C__
A.二义冲突
B.移进/归约冲突
C.移进/移进冲突
D.归约/归约冲突
58.在程序运行前就确定所需的数据空间的存储分配方法是__A__
A.静态的
B.动态的
C.栈式的
D.堆式的
59.B型文法也称为上下文有关文法。
A.0
B.1
C.2
D.3
60.确定有限自动机的化简是要实现__A__。
A.状态最少化
B.转换函数确定化
C.符号最少化
D.边的最少化
61.局部优化是对D进行的优化。
A.表达式
B.部分代码
C.循环体
D.基本块
62.由文法的开始符推导产生的文法符号序列是C。
A.短语
B.句柄
C.句型
D.句子
63.__D__型文法也称为正规文法。
A.0
B.1
C.2
D.3
64.__D__文法不是LL(1>的。
A.递归
B.右递归
C.2型
D.含有公共左因子的
65.同心集合并可能会产生的新冲突为D。
A.二义
B.移进/移进
C.移进/归约
D.归约/归约
66.过程的DISPLAY表记录了B。
A.过程的连接数据
B.过程的嵌套层次
C.过程的返回地址
D.过程的入口地址
67.代码优化时所依据的是C。
A.语法规则
B.词法规则
C.等价变换规则
D.语义规则
68.编译原理各阶段工作都涉及B
A.词法分析
B.表格管理
C.语法分析
D.语义分析
69.正则表达式R1和R2等价是指C
A.R1和R2都是定义在一个字母表上的正则表达式
B.R1和R2中使用的运算符相同
C.R1和R2代表同一正则集
D.R1和R2代表不同正则集
70.在以下的语法分析中,D特别适合于表达式的分析。
A.LR分析
B.LL(1>分析
C.递归下降分析
D.算符优先分析
71.在语法制导翻译中不采用拉链回填技术的语句是B。
A.跳转语句
B.赋值语句
C.条件语句
D.循环语句
72.在属性文法中,终结符只具有D属性。
A.传递
B.继承
C.抽象
D.综合
73.不可能是目标代码的是(D>
A.汇编指令代码
B.可重定位指令代码
C.绝对指令代码
D.中间代码
74.词法分析器的输入是(B>
A.单词符号串B.源程序
C.语法单位D.目标程序
75.词法分析应遵循(C>
A.语义规则
B.语法规则
C.构词规则
D.等价变换规则
76.词法分析器的输出结果是(C>
A.单词的种别编码
B.单词在符号表中的位置
C.单词的种别编码和属性值
D.单词属性值
判断题
1
“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。
(×>
1
编译过程中,语法分析器的任务是分析单词是怎样构成的。
(×>
2
2型文法一定是3型文法。
<×)
3
3型文法一定是2型文法。
(√>
4
LR法是自顶向下语法分析方法。
(×>
5
LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√>
6
LR分析技术无法适用二义文法。
(×>
7
LR分析器的任务就是产生LR分析表。
(√>
8
r和s分别是正规式,则有L(r|s>=L(r>L(s>。
(×>
9
编译程序是对高级语言程序的解释执行。
(×>
10
编译程序与具体的机器有关,与具体的语言无关。
(×>
12
并不是每个文法都能改写成LL(1>文法。
(√>
13
采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)
14
产生式是定义语法范畴的一种书写规则。
(√>
15
产生式是用于定义词法成分的一种书写规则。
(×>
16
程序语言的语言处理程序是一种应用软件。
(×>
17
词法分析作为单独的一遍来处理较好。
(×>
18
从一个句型到另一个句型的推导过程是唯一的。
(×>
19
递归下降法不允许任一非终极符是直接左递归的。
(√>
20
递归下降分析法是一种自下而上分析法。
(×>
21
递归下降分析法是自顶向上分析方法。
(√>
22
对任何正规式e,都存在一个DFAM,满足L(M>=L(e>。
(√>
23
对任意一个右线性正规文法G,都存在一个DFAM,满足L(G>=L(M>。
(√>
24
对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
(×>
25
二义文法不是上下文无关文法。
(×>
26
分析作为单独的一遍来处理较好。
(×>
27
符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
(×>
28
归约和规范推导是互逆的两个过程。
(√>
29
计算机高级语言翻译成低级语言只有解释一种方式。
(×>
30
甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(√>
31
简单优先文法允许任意两个产生式具有相同右部。
(×>
32
仅考虑一个基本块,不能确定一个赋值是否真是无用的。
(√>
33
进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×>
34
静态数组的存储空间可以在编译时确定。
(×>
35
两个正规集相等的必要条件是他们对应的正规式等价。
(×>
36
每个过程的活动记录的体积在编译时可静态确定。
<√)
37
每个基本块可用一个DAG表示。
<√)
38
每个基本块只有一个入口和一个出口。
(√>
39
每个文法都能改写为LL(1>文法。
(√>
40
目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
(√>
41
逆波兰表示法表示表达式时无须使用括号。
(√>
42
逆波兰法表示的表达式亦称后缀式。
(√>
43
逆波兰法表示的表达试亦称前缀式。
(×>
44
确定的的自动机以及不确定的自动机都能正确地识别正集(√>
45
确定有限自动机以及非确定有限自动机都能正确地识别正规集。
(√>
46
如果文法G是无二义的,那么规范归约和规范推导是互逆的两个过程。
(√>
47
如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。
(√>
48
若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。
(×>
49
设R和S分别是字母表∑上的正规式,则有L(R|S>=L(R>∪L(S>。
(√>
50
树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。
(×>
51
数组元素的地址计算与数组的存储方式有关。
(×>
52
算符优先分析法每次都是对句柄进行归约。
(×>
53
算符优先关系表不一定存在对应的优先函数。
(×>
54
同心集的合并有可能产生新的“移进”/“归约”冲突(×>
55
文法是描述语言的语法结构的形式规则。
(√>
56
削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。
(√>
57
序中的表达式语句在语义翻译时不需要回填技术。
(√>
58
要构造行之有效的自上而下的分析器,则必须消除左递归。
(×>
59
一个LL(l>文法一定是无二义的。
(×>
60
一个句型的句柄一定是文法某产生式的右部。
(√>
61
一个句型的直接短语是唯一的。
<×)
62
一个句型一定句子。
(×>
63
一个确定有限状态自动机中,有且仅有一个唯一的终态。
(×>
64
一个上下文无关文法的开始符,可以是终结符或非终结符。
(×>
65
一个算符优先文法可能不存在算符优先函数与之对应。
(√>
66
一个优先表一定存在相应的优先函数。
(×>
67
一个有限状态自动机中,有且仅有一个唯一的终态。
(×>
68
一个语义子程序描述了一个文法所对应的翻译工作。
(×>
69
一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
(×>
70
语法分析时必须先消除文法中的左递归。
(×>
71
在编译中进行语法检查的目的是为了发现程序中所有错误。
(×>
72
在程序中标识符的出现仅为使用性的。
(×>
73
在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。
(×>
74
自底而上语法分析方法的主要问题是候选式的选择。
(×>
75
自动机M1和M2的状态数不同,则二者必不等价。
(×>
76
自上而下分析法是一种“移进—归约”法。
(×>
77
自下而上的分析法是一种“移进—归约”法。
(√>
78
综合属性是用于“自上而下”传递信息。
(×>
简答题
语法分析的主要任务是什么?
常分为哪二类方法?
答案:
任务是在词法分析的基础上将单词序列组合成各类语法短语.
常分为:
自顶而下,自底而上二类方法。
编译程序大致有哪几种开发技术?
答案:
<1)自编译<2)交叉编译<3)自展<4)移植:
编译程序的实现应考虑的问题有那些?
答案:
编译程序的实现应考虑:
开发周期、目标程序的效率、可移植性、可调试性、可维护
性、可扩充性等。
编译过程中可进行的优化如何分类?
答案:
依据优化所涉及的程序范围,可以分为:
局部优化、循环优化和全局优化。
对下列错误信息,请指出可能是编译的哪个阶段<词法分析、语法分析、语义分析、
代码生成)报告的。
<1)else没有匹配的if
<2)数组下标越界
<3)使用的函数没有定义
<4)在数中出现非数字字符
答案:
<1)语法分析
<2)语义分析
<3)语法分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习题