16秋奥鹏北航《编译技术》在线作业一标准答案
一、单选题:
1.( )负责分析程序语法结构 (满分:4)
A. 扫描程序
B. 语法分析程序
C. 语义分析程序
D. 代码生成程序
2.在下述的编译方法中,自顶向下的分析方法有( )。 ①简单优先分析 ②算符优先分析 ③递归下降分析 ④预测分析技术 ⑤LR(K)分析 ⑥ SLR(k)分析 ⑦ LL(k)分析 ⑧LALR(K)分析 (满分:4)
A. ③④⑦
B. ③④⑧
C. ①②⑤⑥⑦
D. ①②⑤⑥⑧
3.正规式(a|b)*表示的是( )。 (满分:4)
A. 所有由字母a或b构成的串
B. 字符串a|b
C. 字符串(a|b)*
D. 空串
4.词法扫描程序把源代码生成为( )。 (满分:4)
A. 记号流
B. 语法树
C. 词法树
D. 目标代码
5.高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。 (满分:4)
A. 自左至右
B. 自上而下
C. 自下而上
D. 自右向左
6.把一个高级语言程序翻译成机器可执行的目标程序的工作由( )完成。 (满分:4)
A. 汇编程序
B. 解释程序
C. 编译程序
D. 预处理程序
7.编译器与要编译的源程序的接口阶段是( )。 (满分:4)
A. 扫描程序
B. 语法分析程序
C. 语义分析程序
D. 代码生成器
8.语法分析程序输出( )。 (满分:4)
A. 记号系列
B. 分析树或语法树
C. 中间代码
D. 目标代码
9.类型转换时,整数到实数的转换称为( )。 (满分:4)
A. 截断
B. 舍入
C. 拓展
D. 收缩
10.文法 E→(E)产生的语言是( )。 (满分:4)
A. 空集
B.( )
C. (E)
D.((((E))))
11.赋值语句X::=-(a+b)/(c-d)-(a+b*c)r的逆波兰表示是 ( )。 (满分:4)
A. Xab+cd-/-bc*a+-
12.有限自动机可以有( )个初始状态。 (满分:4)
=
B. Xab+/cd--bc*a+--
13.Chomsky 定义的四种形式语言文法中,1 型文法又称为( )文法。 (满分:4)
=
C. Xab+-cd-/abc*+-
14.在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是( )。 (满分:4)
=
D. Xab+cd-/abc*+--
二、多选题:
1.栈式分配策略在( )情况下行不通。 (满分:4)
=
2.栈式分配策略在下列哪些情况下行不通?( ) (满分:4)
A. 一个
B. 两个
C. 三个
D. 多个
3.常见的代码优化包括( )。 (满分:4)
A. 短语文法
B. 上下文无关文法
C. 上下文有关文法
D. 正规文法
4.关于堆式分配,下面说法正确地是( )。 (满分:4)
A. 非终极符集
B. 终极符集
C. 字母表
D. 状态集
三、判断题:
1.文法S→aA;A→Ab;A→b是LR(0)文法(S为文法的开始符号)。( ) (满分:4)
A. 过程活动停止后,局部名字的值还必须维持
B. 被调用者的活动比调用者的活动活得更长,此时活动树不能正确描绘程序的控制流
C. 不遵守栈式规则的有Pascal语言和C语言的动态变量
D. Java禁止程序员自己释放空间
2.每个文法的综合符合集和集成属性集的交应该为空。 ( ) (满分:4)
A. 过程活动停止后,局部名字的值还必须维持
B. 被调用者的活动比调用者的活动活得更长,此时活动树不能正确描绘程序的控制流
C. 不遵守栈式规则的有Pascal语言和C语言的动态变量
D. Java禁止程序员自己释放空间
3.有限自动机能够识别上下文无关语言。 ( ) (满分:4)
A. 常量合并
B. 公共子表达式删除
C. 复写传播
D. 死代码删除
4.符号表管理和出错管理是编译过程中的两项重要工作。( ) (满分:4)
A. 属于动态分配
B. 属于静态分配
C. 适用于可递归调用、具有分程序结构的语言
D. 适用于允许为变量动态申请内存空间的语言
5.把汇编语言程序翻译成机器可执行的目标程序的工作是由编译器完成的。 ( ) (满分:4)
A. 错误
B. 正确
6.仅考虑一个基本块,不能确定一个赋值是否真是无用的。 ( ) (满分:4)
A. 错误
B. 正确
7.我们可以概括地认为中间代码是编译器使用的源代码的任何一个内部表示。 ( ) (满分:4)
A. 错误
B. 正确