一、单选题(共 14 道试题,共 56 分。)V 1. Chomsky 定义的四种形式语言文法中, 0 型文法又称为( )文法。
A. 短语文法
B. 上下文无关文法
C. 上下文有关文法
D. 正规文法
满分:4 分
2. 若文法G定义的语言是无限集,则文法必然是( )。
A. 上下文无关文法
B. 正规文法
C. 二义性文法
D. 递归文法
满分:4 分
3. 编译器与要编译的源程序的接口阶段是( )。
A. 扫描程序
B. 语法分析程序
C. 语义分析程序
D. 代码生成器
满分:4 分
4. 正规式(a|b)*表示的是( )。
A. 所有由字母a或b构成的串
B. 字符串a|b
C. 字符串(a|b)*
D. 空串
满分:4 分
5. 有文法G=({S},{a},{S→SaS,S→e},S),该文法是( )。
A. LL(1)文法
B. 二义性文法
C. 算符优先文法
D. SLR(1)文法
满分:4 分
6. 有限自动机可以有( )个初始状态。
A. 一个
B. 两个
C. 三个
D. 多个
满分:4 分
7. 正规式a*表示的是( )。
A. 字符a
B. 由字母a组成的所有串
C. 字符串aa
D. 字符串a*
满分:4 分
8. 已知文法:S→aAa|aBb|bAb|bBaA→x B→x ,则( )。
A. LR(1)文法
B. LALR(1)文法
C. 都不是
D. A和B
满分:4 分
9. 在编译时安排所有数据对象的存储单元的分配策略属于( )。
A. 静态分配策略
B. 动态分配策略
C. 栈式分配策略
D. 堆分配策略
满分:4 分
10. Σ={0,1}上的正规式(0|1)* 表示( )。
A. 0开头的串
B. 1开头的串
C. 有一个0和一个1的串
D. 由0、1组成的任意串
满分:4 分
11. 把一个高级语言程序翻译成机器可执行的目标程序的工作由( )完成。
A. 汇编程序
B. 解释程序
C. 编译程序
D. 预处理程序
满分:4 分
12. 文法 G 产生的( )的全体是该文法描述的语言。
A. 句型
B. 终结符集
C. 非终结符集
D. 句子
满分:4 分
13. Chomsky 定义的四种形式语言文法中, 3 型文法又称为( )文法。
A. 短语文法
B. 上下文无关文法
C. 上下文有关文法
D. 正规文法
满分:4 分
14. 文法 E→(E)产生的语言是( )。
A. 空集
B. ()
C. (E)
D. ((((E))))
满分:4 分
二、多选题(共 4 道试题,共 16 分。)V 1. 关于堆式分配,下面说法正确地是( )。
A. 属于动态分配
B. 属于静态分配
C. 适用于可递归调用、具有分程序结构的语言
D. 适用于允许为变量动态申请内存空间的语言
满分:4 分
2. 代码优化时,常见的循环优化包括( )。
A. 代码外提
B. 归纳变量删除
C. 强度削弱
D. 常量合并
满分:4 分
3. 文法符号的语义属性有( )。
A. 综合属性
B. 继承属性
C. 符号属性
D. 数字属性
满分:4 分
4. 在如下上下文无关文法G中: stmt-sequence → stmt; stmt-sequence | stmt stmt → s 哪些是终结符号?( )
A. stmt-sequence
B. stmt
C. s
D. ;
满分:4 分
三、判断题(共 7 道试题,共 28 分。)V 1. 把汇编语言程序翻译成机器可执行的目标程序的工作是由编译器完成的。 ( )
A. 错误
B. 正确
满分:4 分
2. 对于一个无二义性的文法,一棵语言树往往代表了多种最左推导过程。( )
A. 错误
B. 正确
满分:4 分
3. 算符优先分析法只能识别由算符优先文法描述的句子。( )
A. 错误
B. 正确
满分:4 分
4. 如果有的文法的一些句子有不止一种推导过程,则该文法具有二义性。( )
A. 错误
B. 正确
满分:4 分
5. 编译器通常包括许多代码改进或优化步骤。( )
A. 错误
B. 正确
满分:4 分
6. 符号表管理和出错管理是编译过程中的两项重要工作。( )
A. 错误
B. 正确
满分:4 分
7. 算符优先关系表不一定存在对应的优先函数。 ( )
A. 错误
B. 正确
满分:4 分