1.计算机程序语言以及编译
编译是对高级语言的翻译
源程序是句子的集合 ,树可以较好的反应句子的结构
编译程序是一种翻译程序
2.编号器在语言处理系统中的位置
可重定位:在内存中存放的起始位置不是固定的
加载器:修改可重定位地址;将修改后的指令和地址放到内存中适当的位置
链接器:将多个可重定位的机器代码文件(包括库文件)连接在一起;解决外部内存地址问题
3.编译器构造
分析部分/前端:与源语言相关(从词法分析器到中间代码生成器)
综合部分/后端:与目标语言相关(从目标代码生成器到相关代码优化)
语法分析器接收以单词为单位的输入,语法分析器的任务是分析单词串是如何构成语句和声名的 , 语法分析所依据的是语法规则
4.词法分析概述
5.语法分析
语法分析器从词法分析器输出发token序列中识别出各类短语 ,并构造语法分析树
6 语义分析
7.中间代码生成以及编译器后端概述
常用中间代码的中间表示形式:
三地址码:本模块主要讨论这个
语法结构树/语法树
三地址指令的表示:四元式
三元式
间接三元式
9 目标代码生成
目标代码生成以源程序的中间表示形式 作为输入,并把它映射到目标语言
目标代码生成的一个重要任务是为程序中使用的变量合理分配寄存器
10 代码优化
为改进代码所进行的等价程序交换 ,使其运行得更快 一些,占用空间更少一些,或者二者兼顾