期末考试自己整理出来的复习题
《编译原理》复习提纲
第一章:概述
1.编译程序的地位:系统软件
2.编译程序和解释程序的根本区别:是否生成目标代码(解释程序不生成目标代码)
3.源程序的执行过程:两种形式
直接生成机器代码程序:编译—运行;
目标程序是汇编语言程序:编译—汇编—运行
4.编译程序的6个工作:词法分析、语法分析、语义分析、代码生成(4个必须完成)、中间代码生成、代码优化。
5. 编译程序的每个工作阶段的主要任务
- 词法分析(扫描器):输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词及其有关属性,并转换成属性字。
- 语法分析(分析器):在词法分析的基础上,根据语言的语法规则,逐一分析词法分析时得到的属性字,检查语法错误,若没有错误,则给出正确的语法结构(如短语、句子、子句、程序段、程序等等)。
- 语义分析(语义处理)、中间代码生成:语法分析识别出各类语法范畴,分析其含义,进行初步翻译,产生介于源代码和目标代码之间的一种代码“中间代码”。或者直接生成目标代码。
- 优化:对前面产生的中间代码进行加工变换,用于最后阶段能产生更为高效的目标代码。
- 目标代码生成:把经过优化的中间代码转化成特定机器上的低级语言代码。
目标代码的形式:绝对指令代码、汇编指令代码、可重定义指令代码。
(判断)编译程序生成的目标代码一定是机器语言的程序 ×
若源程序是用高级语言编写的,目标程序是 机器语言程序或汇编程序 ,则其翻译程序称为编译程序.