编译原理 第一章

第一章
(一)什么是编译程序

1.编译程序
将用高级语言书写的程序翻译成等价的低级语言程序(汇编、机器语言),这种翻译程序称为编译程序。

2.源程序

编译程序的输入对象为源程序

3.目标程序
编译程序的输出对象为目标程序

4.解释器与编译器

编译原理 第一章
(二)词法分析
1.从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词

(三)语法分析
1.判断输入串是否构成一个语法上正确的程序,并生成语法树

(四)语义分析
1.审查源程序是否有语义错误,为代码生成阶段收集类型信息
2.审查类型:
上下文相关性、类型匹配、类型转换

(五)中间代码生成
1.将源程序生成一种内部表示形式,这种内部表示形式叫中间代码
编译原理 第一章
(六)代码优化
1.对中间代码进行等价变换,以便生成更高效的目标代码
编译原理 第一章
(七)目标代码生成
1.把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码,它的工作与硬件系统和指令含义有关
编译原理 第一章
(八)表格管理和出错管理(应该不考)
编译原理 第一章
(九)编译阶段
1.分析和综合
①分析:词法分析、语法分析、语义分析,只对程序进行识别检查,没做翻译
②综合:中间代码生成、代码优化、目标代码生成,对源程序进行翻译,生成目标代码
2.前端和后端
①前端(与源语言有关):词法分析、语法分析、语义分析、中间代码生成、中间代码优化
②后端(与源语言无关):目标代码生成