北航12春《编译技术》在线作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北航《编译技术》在线作业一(100)
一、单选题(共14 道试题,共56 分。)
1. 文法G 产生的()的全体是该文法描述的语言。
A. 句型
B. 终结符集
C. 非终结符集
D. 句子
2. 编译程序诸阶段的工作往往是()。
A. 顺序
B. 并行
C. 成批
D. 穿插
3. 如果r、s是正规式,则下面()不一定是正规式。
A. rs
B. r|s
C. r*
D. r+s
4. Σ={0,1}上的正规式(0|1)* 表示()。
A. 0开头的串
B. 1开头的串
C. 有一个0和一个1的串
D. 由0、1组成的任意串
5. 有限自动机有()个接受状态
A. 只能一个
B. 只能两个
C. 只能三个
D. 0个、一个或多个
6. ()的任务是从源代码中读取字符并形成由编译器的以后部分处理的逻辑单元——记号
A. 扫描程序
B. 语法分析程序
C. 语义分析程序
D. 源代码优化程序
7. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。
A. 自左至右
B. 自上而下
C. 自下而上
D. 自右向左
8. 编译程序中语法分析器接收以()为单位的输入。
A. 单词
B. 表达式
C. 产生式
D. 句子
9. 在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是()。
A. 非终极符集
B. 终极符集
C. 字母表
D. 状态集
10. Chomsky 定义的四种形式语言文法中,1 型文法又称为()文法。
A. 短语文法
B. 上下文无关文法
C. 上下文有关文法
D. 正规文法
11. 词法扫描程序把源代码生成为()。
A. 记号流
B. 语法树
C. 词法树
D. 目标代码
12. 若文法G定义的语言是无限集,则文法必然是()。
A. 上下文无关文法
B. 正规文法
C. 二义性文法
D. 递归文法
13. 在自下而上的语法分析方法中,分析的关键是()。
A. 寻找句柄
B. 寻找句型
C. 消除递归
D. 选择候选式
14. 下述方法中,()不是自下而上分析方法。
A. 规范归约
B. 算符优先分析法
C. 递归下降分析法
D. LR分析法
二、多选题(共 4 道试题,共16 分。)
1. 在如下上下文无关文法G中:stmt-sequence → stmt; stmt-sequence | stmt stmt → s 下面哪些是可以由该文法推导出的句型?()
A. stmt; stmt-sequence
B. s
C. s;s
D. s;s;stmt
2. 栈式分配策略在()情况下行不通。
A. 过程活动停止后,局部名字的值还必须维持
B. 被调用者的活动比调用者的活动活得更长,此时活动树不能正确描绘程序的控制流
C. 不遵守栈式规则的有Pascal语言和C语言的动态变量
D. Java禁止程序员自己释放空间
3. 下面语言特征会影响存储分配策略的是()。
A. 过程能否递归
B. 当控制从过程的活动返回时,局部变量的值是否要保留
C. 过程能否访问非局部变量
D. 过程调用的参数传递方式
4. 栈式分配策略在下列哪些情况下行不通?()
A. 过程活动停止后,局部名字的值还必须维持
B. 被调用者的活动比调用者的活动活得更长,此时活动树不能正确描绘程序的控制流
C. 不遵守栈式规则的有Pascal语言和C语言的动态变量
D. Java禁止程序员自己释放空间
三、判断题(共7 道试题,共28 分。)
1. 每个文法都能改写为LL(1)文法。()
A. 错误
B. 正确
2. 解释程序是在翻译完成之后生成目标代码,然后执行目标代码。()
A. 错误
B. 正确
3. 仅考虑一个基本块,不能确定一个赋值是否真是无用的。()
A. 错误
B. 正确
4. LL(1)分析必须对原有文法提取左因子和消除左递归。()
A. 错误
B. 正确
5. 目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。()
A. 错误
B. 正确
6. 语义分析的任务包括两方面,一个是静态语义检查,一个是动态语义的解释执行并生成中间代码。()
A. 错误
B. 正确
7. 上下文无关文法也叫正规文法。()
A. 错误
B. 正确
北航《编译技术》在线作业二(100)
一、单选题(共14 道试题,共56 分。)
1. 赋值语句X::=-(a+b)/(c-d)-(a+b*c)r的逆波兰表示是()。
A. Xab+cd-/-bc*a+-:=
B. Xab+/cd--bc*a+--:=
C. Xab+-cd-/abc*+-:=
D. Xab+cd-/abc*+--:=
2. 有限自动机()个接受状态。
A. 只能有一个
B. 只能有两个
C. 只能有三个
D. 可以有0个、一个或多个
3. 在LR分析法中,分析栈中存放的状态是识别规范句型()的DFA状态。
A. 句柄
B. 前缀
C. 活前缀
D. LR(0)项目
4. 下述方法中,()不是自下而上分析方法。
A. 规范归约
B. 算符优先分析法
C. 递归下降分析法
D. LR分析法
5. 编译器与要编译的源程序的接口阶段是()。
A. 扫描程序
B. 语法分析程序
C. 语义分析程序
D. 代码生成器
6. 最常用的中间代码形式是()。
A. 二元式
B. 三元式
C. 四元式
D. 树形表示
7. 词法分析器的输出是()。
A. 字符串
B. 二元式
C. 三元式
D. 四元式
8. 文法G 产生的()的全体是该文法描述的语言。
A. 句型
B. 终结符集
C. 非终结符集
D. 句子
9. 在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是()。
A. 非终极符集
B. 终极符集
C. 字母表
D. 状态集
10. 下面的优化项目中,不属于循环优化的是()。
A. 不变运算外提
B. 削弱运算强度
C. 消除归纳变量
D. 合并已知运算
11. 如果r、s是正规式,则下面()不一定是正规式。
A. rs
B. r|s
C. r*
D. r+s
12. 下面哪个文法具有二义性()。
A. A→AA | (A) |
B. E→E+T|T
C. E→(E)
D. E→a
13. 最适合动态建立数据实体的内存分配方式是()。