北航远程教育201509学期《编译技术》阶段导学3
- 格式:doc
- 大小:51.00 KB
- 文档页数:2
秋北航《编译技术》在线作业一————————————————————————————————作者:————————————————————————————————日期:北航《编译技术》在线作业一试卷总分: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*+--:=满分:4 分2. 有限自动机有()个接受状态A. 只能一个B. 只能两个C. 只能三个D. 0个、一个或多个满分:4 分3. 在自下而上的语法分析方法中,分析的关键是()。
A. 寻找句柄B. 寻找句型C. 消除递归D. 选择候选式满分:4 分4. 规范规约是()。
A. 最左规约B. 最右规约C. 动态规约D. 静态规约满分:4 分5. 下面哪个文法是右递归的()A. A E→TE|TB. T→aTC. E→(E)D. E→a满分:4 分6. 类型转换时,整数到实数的转换称为()。
A. 截断B. 舍入C. 拓展D. 收缩满分:4 分7. 下面的优化项目中,不属于循环优化的是()。
A. 不变运算外提B. 削弱运算强度C. 消除归纳变量D. 合并已知运算满分:4 分8. 下面哪个文法是左递归的()。
A. E→E+T|TB. T→F*TC. E→(E)D. E→a满分:4 分9. 在编译时安排所有数据对象的存储单元的分配策略属于()。
A. 静态分配策略B. 动态分配策略C. 栈式分配策略D. 堆分配策略满分:4 分10. ()负责分析程序语法结构A. 扫描程序B. 语法分析程序C. 语义分析程序D. 代码生成程序满分:4 分11. 编译程序中语法分析器接收以()为单位的输入。
A. 单词B. 表达式C. 产生式D. 句子满分:4 分12. 若一个文法是递归的,则它所产生的句子个数()。
北航《编译技术》在线作业三单选题多选题判断题一、单选题(共 14 道试题,共 56 分。
)1. 文法 G 产生的()的全体是该文法描述的语言。
. 句型. 终结符集. 非终结符集. 句子-----------------选择:2. homsky 定义的四种形式语言文法中,2 型语言文法又称为()文法。
. 短语文法. 上下文无关文法. 上下文有关文法. 正规文法-----------------选择:3. 如果r、s是正规式,则下面()不一定是正规式。
. rs. r|s. r*. r+s-----------------选择:4. 算符优先分析每次规约的是()。
. 最左短语. 直接短语. 句柄. 最左素短语-----------------选择:5. 最常用的中间代码形式是()。
. 二元式. 三元式. 四元式. 树形表示-----------------选择:6. 文法 E→(E)产生的语言是()。
. 空集. (). (E). ((((E))))-----------------选择:7. 下面哪个文法是左递归的()。
. E→E+T|T. T→F*T. E→(E). E→-----------------选择:8. Σ={0,1}上的正规式(0|1)* 表示()。
. 0开头的串. 1开头的串. 有一个0和一个1的串. 由0、1组成的任意串-----------------选择:9. 正规式(|)*表示的是()。
. 所有由字母或构成的串. 字符串|. 字符串(|)*. 空串-----------------选择:10. 编译器与要编译的源程序的接口阶段是()。
. 扫描程序. 语法分析程序. 语义分析程序. 代码生成器-----------------选择:11. 有限自动机可以有()个初始状态。
. 一个. 两个. 三个. 多个-----------------选择:12. 语法分析属于编译器的()阶段。
北航《编译技术》复习题一一、单项选择题1、目标代码生成属于编译器的()阶段A.词法分析B.语法分析C.分析D.综合2、算符优先分析每次规约的是()A.最左短语B.直接短语C.句柄D.最左素短语3、简单优先分析每次规约的是()A.最左短语B.直接短语C.句柄D.最左素短语4、若文法 G 定义的语言是无限集,则文法必然是()A .递归的 B. 前后文无关的C .二义性的 D. 无二义性的5、Chomsky 定义的四种形式语言文法中, 1 型文法又称为()文法;A .短语结构文法 B.前后文无关文法C.前后文有关文法D.正规文法6、一个文法所描述的语言是()A .唯一的 B. 不唯一的C .可能唯一, D.可能不唯一7、数组的内情向量中肯定不含有数组的()的信息A.维数 B.类型C.维上下界D.各维的界差8、自顶向下的分析方法有()。
①简单优先分析②算符优先分析③递归下降分析④预测分析技术⑤LR(K)分析⑥ SLR(k)分析⑦ LL(k)分析⑧LALR(K)分析A.③④⑦B. ③④⑧C.①②⑧D.③④⑤⑥⑦9、文法 G 所描述的语言是()的集合。
A.文法 G 的字母表 V 中所有符号组成的符号串B.文法 G 的字母表 V 的闭包 V 中的所有符号串C.由文法的开始符号推出的所有终极符串D.由文法的开始符号推出的所有符号串10、乔姆斯基(Chomsky)把文法分为四种类型,即 0 型、1 型、2 型、3 型。
其中 3 型文法是()。
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法二、判断题11、每个基本块可用一个DAG表示。
A.对 B.错12、每个过程的活动记录的体积在编译时可静态确定。
A.对 B.错13、2型文法一定是3型文法。
BA.对 B.错14、一个句型一定是句子。
BA.对 B.错15、算符优先分析法每次都是对句柄进行归约。
A.对 B.错16、甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
123是汇编程序、编译程序以及各种变换程序的总称。
4567891011121314151617181920一遍扫描即可完成整个编译工作的称为一遍扫描编译程序 其结构为: S.P.取单词 返回单词 词法分析 整理目标程序 停机 语法分析 语法成分 返回分析结果 语义分析生成 目标程序O.P.北京航空航天大学计算机学院21三、前端和后端 根据编译程序各部分功能,将编译程序分成前端和后端。
前端:通常将与源程序有关的编译部分称为前端。
词法分析、语法分析、语义分析、中间代码生成、 代码优化 -------分析部分 特点:与源语言有关后端:与目标机有关的部分称为后端。
目标程序生成(与目标机有关的优化) -------综合部分 特点:与目标机有关北京航空航天大学计算机学院 22四、 编译程序的前后处理器源程序:多文件、宏定义和宏替换(调用),包含文件 目标程序:一般为汇编程序或可重定位的机器代码框架源程序 预处理器 源程序 编译程序 目标程序(汇编) 汇编程序 可运行的机器代码 可重定位机器码 (Obj文件)北京航空航天大学计算机学院 23可重定位机器码 (文件组) 连接编辑 可执行文件 加载器 库目标、可重 定位目标文件1.4 编译技术的应用[ 语法制导的结构化编辑器 [ 程序格式化工具 [ 软件分析与测试工具 [ 程序理解工具 [ 高级语言的翻译工具 [ 等等北京航空航天大学计算机学院24。
北航《编译技术》在线作业三一、单选题(共 14 道试题,共 56 分。
)1. 有文法G=({S},{a},{S→SaS,S→e},S),该文法是()。
A. LL(1)文法B. 二义性文法C. 算符优先文法D. SLR(1)文法-----------------选择:B2. 编译器与要编译的源程序的接口阶段是()。
A. 扫描程序B. 语法分析程序C. 语义分析程序D. 代码生成器-----------------选择:A3. 下面的优化项目中,不属于循环优化的是()。
A. 不变运算外提B. 削弱运算强度C. 消除归纳变量D. 合并已知运算-----------------选择:D4. 在自下而上的语法分析方法中,分析的关键是()。
A. 寻找句柄B. 寻找句型C. 消除递归D. 选择候选式-----------------选择:D5. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。
A. 自左至右B. 自上而下C. 自下而上D. 自右向左-----------------选择:B6. Chomsky 定义的四种形式语言文法中,2 型语言文法又称为()文法。
A. 短语文法B. 上下文无关文法C. 上下文有关文法D. 正规文法-----------------选择:B7. 由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成()。
A. 过程B. 程序C. 批量D. 遍-----------------选择:D8. 代码生成属于编译器的()A. 语义分析B. 分析C. 代码生成D. 综合-----------------选择:D9. 正规式(a|b)*表示的是()。
A. 所有由字母a或b构成的串B. 字符串a|bC. 字符串(a|b)*D. 空串-----------------选择:A10. 在下述的编译方法中,自顶向下的分析方法有()。
①简单优先分析②算符优先分析③递归下降分析④预测分析技术⑤LR(K)分析⑥ SLR(k)分析⑦ LL(k)分析⑧LALR (K)分析A. ③④⑦B. ③④⑧C. ①②⑤⑥⑦D. ①②⑤⑥⑧-----------------选择:A11. 下面哪个文法是右递归的()A. A E→TE|TB. T→aTC. E→(E)D. E→a-----------------选择:A12. 如果r、s是正规式,则下面()不一定是正规式。
《操作系统》第三阶段导学材料(对应教材第四章、第五章)第四章存储管理1、教学的目的和要求:掌握分区式存储管理,分页式存储管理,分段式存储管理,段页式存储管理。
了解Linux内存管理。
本章是操作系统课程中重要内容之一,希望同学们可以认真学好本章内容。
2、教学内容:1)分区式存储管理地址重定位:静态重定位和动态重定位。
固定式分区和可变式分区:1)固定式分区:指在作业装入之前,内存就被划分成若干分区。
这一划分可由操作人员完成,也可由操作系统实现。
一旦划分好,在系统运行期间不再重新划分。
2)可变式分区:指在作业装入内存时把可用内存“切出”一个连续的区域分配给作业,且分区大小正好适应作业的需要。
分区的个数和大小不是固定不变的,而是根据装入的作业动态地划分。
3)可变式分区分配和释放算法:最佳适应算法,最先适应算法,最坏适应算法,下次适应算法。
覆盖与交换技术:覆盖是指一个作业的若干程序段,或几个作业的某些部分共享某一段存储空间。
交换是指允许把一个作业装入内存之后仍能把它交换出内存或再交换入内存。
2)分页式存储管理虚拟存储器:虚拟存储技术,虚拟存储器概念。
分页式存储管理的方法:等分内存,建立页表,动态地址转换,缺页处理。
页表和快表:掌握页表和快表的概念。
页面交换:调页方式,淘汰时机,淘汰算法。
淘汰算法包括:先入先出、最近最久未使用淘汰算法、最不频繁使用淘汰算法、最优算法。
页式存储管理的保护措施:一是程序隔离;二是对页面的存取控制。
工作集模型:局部性,工作集。
3)分段存储管理分段存储管理特点:系统中作业的地址空间由若干个逻辑分段组成,每个分段有自己的名字,对于一个分段而言,它是一个连续的地址区。
段式地址变换:掌握段式地址变换的步骤。
扩充段表功能:了解扩充功能的段表结构。
4)段页式存储管理基本原理:段页式系统的基本原理是分段和分页原理的结合。
即先将用户程序分为若干个段,再把每个段分为若干页,并为每个段赋予一个段名。
《编译技术》第三阶段导学材料
(对应教材第六章、第七章、第八章)
第6章运行时存储空间的组织和管理
⏹目标:
通过本章的学习,掌握局部存储分配策略、全局存储分配策略,掌握非局部名字的访问方法、参数传递的方法,掌握一个活动记录中的数据安排,程序执行过程中,所有活动记录的组织方式,影响存储分配策略的语言特征包含哪些因素。
⏹主要内容:
介绍了过程的活动、活动记录的概念,讲述了一个活动记录中的数据安排,程序执行过程中,所有活动记录的组织方式。
讲述了影响存储分配策略的语言特征包含哪些因素。
6.1 局部存储分配策略
6.2 全局存储分配策略
6.3 非局部名字的访问
6.4 参数传递
⏹重点:局部存储分配策略,全局存储分配策略
第7章中间代码生成
⏹目标:
通过本章的学习,掌握后缀表示、图形表示和三地址代码的中间语言表示形式,掌握声明语句、赋值语句、布尔表达式和控制流语句的翻译方法,掌握用语法制导定义和翻译方案方法,来说明程序设计语言的结构怎样被翻译成中间代码形式的。
⏹主要内容:
介绍了后缀表示、图形表示和三地址代码的中间语言表示形式,讲述了声明语句、赋值语句、布尔表达式和控制流语句的翻译方法,讲述了用语法制导定义和翻译方案的方法来说明程序设计语言的结构怎样被翻译成中间代码形式的。
7.1 中间语言
7.2 声明语句
7.3 赋值语句
7.4 布尔表达式和控制流语句
⏹重点:布尔表达式和控制流语句的翻译。
第8章代码生成
⏹目标:
通过本章的学习,掌握代码生成器的设计方法,了解目标机器和它的指令系统在设计代码生成器中的作用,掌握基本块和流图的使用,掌握一个简单的代码生成器的实现方法。
⏹主要内容:
讲述了代码生成器的设计方法,介绍了目标机器和它的指令系统、基本块和流图作用,讲述了一个简单的代码生成算法,讲述了在代码生成算法中涉及存储管理、指令选择、寄存器分配和计算次序选择等基本方法。
8.1 代码生成器设计中的问题
8.2 目标机器
8.3 基本块和流图
8.4 一个简单的代码生成器
⏹重点:简单的代码生成算法。