编译原理期末复习题(第一部分)
1.期末试卷题型
全部为解答题,共11道!
无选择、判断、填空题
2.考点集锦
第一章 绪论
1.编译程序的功能
2.解释程序和编译程序
3.编译程序的结构
4.编译程序的开发方法
5.基本概念:遍、符号表、出错类型等
第二章 词法分析
1.词法分析器的任务
2.正规表达式的概念、运算规则及应用
3.词法分析方法
4.有限自动机、NFA和DFA的概念
5.根据构词规则的描述写正规式,由正规式构造NFA,NFA的确定化及化简的方法
3.各章例题集锦
第一章
——> 题型一:概念题
1.名词解释
遍:一个编译过程可由一遍、两遍或多遍完成。所谓"遍",也称作"趟",是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。每一遍扫视可完成上述一个阶段或多个阶段的工作。对于多遍的编译程序,第一遍的输入是用户书写的源程序,最后一遍的输出是目标语言程序,其余是上一遍的输出为下一遍的输入。
符号表:是一种用于语言翻译器(例如编译器和解释器)中的数据结构。符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。
2.简答题
开发编译程序的途径:自编译,移植法,自展法,工具法,交叉编译。
自编译:用某种高级语言书写自己的编译程序称为自编译。
交叉编译:用A机器上的编译程序来产生可在B机器上运行的目标代码。
自展:首先确定一个非常简单的核心语言 L0,用机器语言或汇编语言书写出它的编译程序 T0,再把语言 L0 扩充到 L1,此时 L0 ⊂ L1 ,并用 L0 编写 L1 的编译程序 T1,再把语言 L1 扩充为 L2,并用 L1 编写 L2 的编译程序 T2,……,如此逐步扩展下去,直到我们所要求的编译程序。
移植:指A机器上的某种高级语言的编译程序稍加改动后能够在B机器上运行。
编译程序的功能:指通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序。但是,作为一个具有实际应用价值的编译系统,还应具备语法检查、调试措施、修改手段、覆盖处理、目标程序优化、不同语言合用以及人-机联系等重要功能。
翻译程序:把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序。
解释程序:也是一种翻译程序,接受某个语言的程序并立即运行。工作模式:一个个的获取、分析、执行源程序语句,一旦第一个语句分析结束,源程序便开始运行并生成结果。把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。
编译程序:把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序。
两者区别:编译程序将源程序翻译