编译原理试题库.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精品文档一填空题
1.编译程序首先要识别出源程序中每
个,然后再分析每个并翻译其意义。
单词,句子
2.编译器常用的语法分析方法有和两种。
自底向上,自顶向下
2.通常把编译过程分为分析与综合两大阶段。词法、语法和语义分析是
对源程序的分析,中间代码生成、代码优
化与目标代码的生成则是对源程序的综合。
前端,后端
4.程序设计语言的发展带来了日渐多变的
.
运行时存储管理方案,主要分为两大
类,即方案和分配方案。
静态存储分配,动态存储
5.对编译程序而言,输入数据是,输出结果是。
源程序,目标程序
6.文法 G 包括四个组成部分:一组终结符
号,一组非终结符号,一组,以
及一个开始符号。
产生式
7.文法按产生式的形式分为四种类型,它
们是: 0 型文法,又称短语文法; 1 型文
法,又称上下文有关文法; 2 型文法,
又称;3 型文法,又称。
上下文无关文法,正规文法
8.最右推导称为,由规范推导产生的句型称为规范句型。
规范推导
9.设 G 是一个文法, S 是它的开始符号,如果 S=>* α,则称α是一个。
仅由终结符号组成的句型是一
个。
句型,句子
10 对于一个文法G 而言,如果 L(G) 中存在
某个句子对应两棵不同,那么该文法就
称为是二义的。
语法树
11.通常程序设计语言的单词符号分为五种:基本字、、常数、算符、界限符。
标识符
12.在自底向上分析法中,LR 分析法把“可归约串”定义为。
句柄
13.编译中常用的中间代码形式有逆波兰
式、三元式、和四元式等。
树代码
14.对中间代码优化按涉及的范围分
为,和全局优化。
局部优化,循环优化
15.局部优化主要包括、利用公共子表达式和删除无用赋值等内容。
合并已知量
16.为了构造不带回溯的递归下降分析程
序,我们通常要消除和提取
左递归,左公共因子
17.计算机执行用高级语言编写的程序主要
有两种途径:和。
解释执行,编译执行
18.扫描器是词法分析,它接收输入
的,对源程序进行词法分析并
识别出一个个,供语法分析器
使用。
源程序,单词符号
19.自下而上分析法采用,,
和等四种操作。
移进、规约、错误处理、接受
20.一个 LR 分析器包括两部分:一个总控程
序,和分析栈。
一张分析表
21.后缀式 abc-/所代表的表达式是。
a/(b-c)
22.局部优化是在范围内进行的一
种优化。
基本块
23.不同的编译程序关于数据空间的存储分
配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为
和。
栈式动态存储分配,堆式动态存储分配
24. 规范规约是。
最左规约
25. 编译程序的工作过程一般划分为 5 个阶
段:词法分析、、语义分析与
中间代码生成,代码优化及目标代码生
成。另外还有和出错处理。
语法分析,表格管理
26.表达式 x+y*z/(a+b) 的后缀式
为。
xyz*ab+/+
27.文法符号的属性有综合属性
和。
继承属性
28.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组 a[1..15,1..20]
某个元素 a[i ,j] 的地址计算公式
为。
a+(i-1)*20+j-1
29.局部优化是局限于一个范围内的一种优化。
基本块
二选择题
1.语言是
A .句子的集合B.产
生式的集合
C.符号串的集合D.句型的集合
A
2.编译程序前三个阶段完成的工作是
A.词法分析、语法分析和代码优化
B.代码生成、代码优化和词法分析
C.词法分析、语法分析、语义分析和中间代码生成
D.词法分析、语法分析和代码优化
C
3.一个句型中称为句柄的是该句型的最左
A .非终结符号B.短语 C.句子D.直接短
语
D
4.下推自动机识别的语言是
A .0 型语言B. 1 型语言C.2 型语言D. 3 型语言
C
5.扫描器所完成的任务是从字符串形式
.
的最小语法单位即
A .字符 B.单词C.句子D.句型
B
6.对应 Chomsky 四种文法的四种语言之间的关系是
A.L0 L1 L2 L3
B.L3 L2 L1 L0
C.L3=L2 L1 L0
D.L0 L1 L2=L3
B
7.词法分析的任务是
A .识别单词B.分析句子的含义C.识别句子D.生成目标代码
A
8.常用的中间代码形式不含
A .三元式B.四元式
C.逆波兰式D.语法树
D
9.代码优化的目的是
A .节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换
C
10.代码生成阶段的主要任务是
A.把高级语言翻译成汇编语言
B.把高级语言翻译成机器语言
C.把中间代码变换成依赖具体机器的目标代码
D.把汇编语言翻译成机器语言
C
11.一个上下文无关文法 G 包括四个组成部