编译原理作业参考答案
- 格式:doc
- 大小:1.57 MB
- 文档页数:37


编译原理复习题及答案
一、 选择题
1. 一个正规语言只能对应( B )
A 一个正规文法 B 一个最小有限状态自动机
2. 文法G[A]:A→ε A→aB B→Ab B→a是( A )
A 正规文法 B 二型文法
3. 下面说法正确的是( A )
A 一个SLR(1)文法一定也是LALR(1)文法
B 一个LR(1)文法一定也是LALR(1)文法
4. 一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的( A )
A 必要条件 B 充分必要条件
5. 下面说法正确的是( B )
A 一个正规式只能对应一个确定的有限状态自动机
B 一个正规语言可能对应多个正规文法
6. 算符优先分析与规范归约相比的优点是( A )
A 归约速度快 B 对文法限制少
7. 一个LR(1)文法合并同心集后若不是LALR(1)文法( B )
A 则可能存在移进/归约冲突
B 则可能存在归约/归约冲突
C 则可能存在移进/归约冲突和归约/归约冲突
8. 下面说法正确的是( A )
A Lex是一个词法分析器的生成器 B Yacc是一个语法分析器
9. 下面说法正确的是( A )
A 一个正规文法也一定是二型文法
B 一个二型文法也一定能有一个等价的正规文法
10. 编译原理是对(C)。
A、机器语言的执行 B、汇编语言的翻译
C、高级语言的翻译 D、高级语言程序的解释执行
11. (A)是一种典型的解释型语言。 A.BASIC B.C C.FORTRAN D.PASCAL
12. 把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器 B. 汇编器 C. 解释器 D. 预处理器
13. 用高级语言编写的程序经编译后产生的程序叫(B)
A.源程序 B.目标程序 C.连接程序 D.解释程序
14. (C)不是编译程序的组成部分。
《编译原理》作业参考答案
一、填空
1. 图二 图一。
2. 文法是无ε产生式,且任意两个终结符之间至多有一种优先关系的算符文法。
3. 最右推导 最右推导。
4. 对于循环中的有些代码,如果它产生的结果在循环中是不变的,就把它提到循环外来。
把程序中执行时间较长的运算替换为执行时间较短的运算。
5. 对于文法中的每个非终结符A的各个产生式的候选首符集两两不相交;
对文法中的每个非终结符A,若它存在某个候选首符集包含ε,则FIRST(A)∩FOLLOW(A)= ø
6. 控制。
7. 语义分析和中间代码产生
8. 自上而下 自下而上 自上而下
9. 自下而上 表达式
10. 自下而上
11. 源程序 单词符号
12. DFA初态唯一,NFA初态不唯一;
DFA弧标记为Σ上的元素,NFA弧标记为Σ*上的元素;
DFA的函数为单射,NFA函数不是单射
13.词法,词法分析器,子程序,语法
14.ε,a,ab,ab
15.终结符号,非终结符号,产生式
16.L(G)={an | n≥1}
17.1型,2型,3型
18.二义的
19.快
20.终态,输入字
21.单词符号,终结符
22.归约
23.必须
24.直接
25.终结符,更快
26.E→E+∙T, E→E∙+T, E→∙E+T, E→E+T∙
27.归约—归约
28.类型检查,一致性检查
29.词法分析、词法
30.语法分析程序、语法
31。终结符号、产生式、开始符号、非终结符
32.2、2、3
参考答案
一、单项选择题(共10小题,每小题2分,共20分)
1.语言是
A.句子的集合 B.产生式的集合
C.符号串的集合 D.句型的集合
2.编译程序前三个阶段完成的工作是
A.词法分析、语法分析和代码优化
B.代码生成、代码优化和词法分析
C.词法分析、语法分析、语义分析和中间代码生成
D.词法分析、语法分析和代码优化
3.一个句型中称为句柄的是该句型的最左
A.非终结符号 B.短语 C.句子 D.直接短语
4.下推自动机识别的语言是
A.0型语言 B.1型语言
C.2型语言 D.3型语言
5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即
A. 字符 B.单词 C.句子 D.句型
6.对应Chomsky四种文法的四种语言之间的关系是
A.L0L1L2L3 B.L3L2L1L0
C.L3=L2L1L0 D.L0L1L2=L3
7.词法分析的任务是
A.识别单词 B.分析句子的含义
C.识别句子 D.生成目标代码
8.常用的中间代码形式不含
A.三元式 B.四元式 C.逆波兰式 D.语法树
9. 代码优化的目的是
A.节省时间 B.节省空间
C.节省时间和空间 D.把编译程序进行等价交换
10.代码生成阶段的主要任务是
A.把高级语言翻译成汇编语言
B.把高级语言翻译成机器语言
编译原理考试题及答案汇总
一、选择
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.后缀式 ab+cd+/可用表达式__B_来表示。
A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d
6. 一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化, 目标代码生成等五个部分。
A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析
7. 词法分析器用于识别__C___。
A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符
8. 语法分析器则可以发现源程序中的___D__。
A.( ) 语义错误 B.( ) 语法和语义错误
C.( ) 错误并校正 D.( ) 语法错误
9. 下面关于解释程序的描述正确的是__B___。
(1) 解释程序的特点是处理程序时不产生目标代码
(2) 解释程序适用于 COBOL 和 FORTRAN 语言
(3) 解释程序是为打开编译程序技术的僵局而开发的
A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3)
10. 解释程序处理语言时 , 大多数采用的是__B___方法。
A.( ) 源程序命令被逐个直接解释执行