|
北航《编译技术》在线作业三
答案
一、单选题:
1.语法分析程序输出( )。 (满分:4)
A. 记号系列
B. 分析树或语法树
C. 中间代码
D. 目标代码
2.下面哪个文法是右递归的( ) (满分:4)
A. A E→TE|T
B. T→aT
C. E→(E)
D. E→a
3.文法 E→(E)产生的语言是( )。 (满分:4)
A. 空集
B.( )
C. (E)
D.((((E))))
4.( )负责分析程序语法结构 (满分:4)
A. 扫描程序
B. 语法分析程序
C. 语义分析程序
D. 代码生成程序
5.文法G的一棵语法树叶结点的自左至右排列是G的一个( )。 (满分:4)
A. 短语
B. 句型
C. 句柄
D. 素短语
6.正规式a*表示的是( )。 (满分:4)
A. 字符a
B. 由字母a组成的所有串
C. 字符串aa
D. 字符串a*
7.赋值语句X::=-(a+b)/(c-d)-(a+b*c)r的逆波兰表示是 ( )。 (满分:4)
A. Xab+cd-/-bc*a+-:=
B. Xab+/cd--bc*a+--:=
C. Xab+-cd-/abc*+-:=
D. Xab+cd-/abc*+--:=
8.高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。 (满分:4)
A. 自左至右
B. 自上而下
C. 自下而上
D. 自右向左
9.规范规约是( )。 (满分:4)
A. 最左规约
B. 最右规约
C. 动态规约
D. 静态规约
10.下面哪个文法是左递归的( )。 (满分:4)
A. E→E+T|T
B. T→F*T
C. E→(E)
D. E→a
11.由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成( )。 (满分:4)
A. 过程
B. 程序
C. 批量
D. 遍
12.有文法G=({S},{a},{S→SaS,S→e},S),该文法是( )。 (满分:4)
A. LL(1)文法
B. 二义性文法
C. 算符优先文法
D. SLR(1)文法
13.在编译时安排所有数据对象的存储单元的分配策略属于( )。 (满分:4)
A. 静态分配策略
B. 动态分配策略
C. 栈式分配策略
D. 堆分配策略
14.下述方法中,( )不是自下而上分析方法。 (满分:4)
A. 规范归约
B. 算符优先分析法
C. 递归下降分析法
D. LR分析法
二、多选题:
1.栈式分配策略在( )情况下行不通。 (满分:4)
A. 过程活动停止后,局部名字的值还必须维持
B. 被调用者的活动比调用者的活动活得更长,此时活动树不能正确描绘程序的控制流
C. 不遵守栈式规则的有Pascal语言和C语言的动态变量
D. Java禁止程序员自己释放空间
2.以下哪些属于计算机存储器( ) (满分:4)
A. 寄存器区域
B. 随机访问存储器
C. 代码区
D. 数据区
3.下面哪些属于静态检查?( ) (满分:4)
A. 类型检查
B. 控制流检查
C. 唯一性检查
D. 关联名字检查
4.下面语言特征会影响存储分配策略的是( )。 (满分:4)
A. 过程能否递归
B. 当控制从过程的活动返回时,局部变量的值是否要保留
C. 过程能否访问非局部变量
D. 过程调用的参数传递方式
三、判断题:
1.编译器通常包括许多代码改进或优化步骤。( ) (满分:4)
A. 错误
B. 正确
2.算符优先分析法采用"移近-归约"技术,其归约过程是规范的。( ) (满分:4)
A. 错误
B. 正确
3.每个文法都能改写为LL(1)文法。 ( ) (满分:4)
A. 错误
B. 正确
4.文法二义并不代表语言一定是二义的。只有当产生一个语言的所有文法都是二义的时,这个语言才是二义的。 ( ) (满分:4)
A. 错误
B. 正确
5.符号表管理和出错管理是编译过程中的两项重要工作。( ) (满分:4)
A. 错误
B. 正确
6.LL(1)分析必须对原有文法提取左因子和消除左递归。( ) (满分:4)
A. 错误
B. 正确
7.仅考虑一个基本块,不能确定一个赋值是否真是无用的。 ( ) (满分:4)
A. 错误
B. 正确
本内容由易百网整理发布
|
|