编译原理结构梳理(未完成)
编译原理
目录
1,编译原理概述
1.1,什么是编译
编译:将高级语言(源语言)翻译成为汇编语言或者机器语言(目标语言)的过程。
编译器在语言处理系统的位置:
预处理:把存储在不同文件中的源程序聚集在一起;把被称为宏的缩写语句转换为原始语句
可重定位:在内存中存放的起始位置L不是固定的
加载器:修改可重定位地址;将修改后的指令和数据放到内存中适当的位置
链接器:将多个可重定位的机器代码文件(包括库文件)连接到一起;解决外部内存地址的问题
1.2,编译系统的结构
1.3,词法分析概述
词法分析:从左到右逐行扫描源程序的字符,识别出各个单词,确定单词的类型。将识别出的单词转换为统一的机内表示——此法单元(Token)形式。
token:< 种别码,属性值 >
1.4,语法分析
语法分析器从词法分析器输出的token序列中识别出各类短语,并构造语法分析树。
语法分析树描述了句子的语法结构。
例:
2,词法分析,语法分析的基本概念
2.1,字母表与串
2.1.1,字母表(Alphabet)
字母表∑是一个有穷符号集合
符号:字母,数字,标点符号等
字母表上的运算:
乘积,n次幂,正闭包(+),克林闭包(*)
2.1.2,串(String)
设∑是一个字母表,∀x∈∑*,x称为∑上的一个串
串即为字母表中符号的一个有穷序列
串s的长度记为|s|,指的是s中符号的个数
空串用ε表示
串的运算:
连接,幂
2.2,文法
G = (VT , VN , P , S)
G:grammar,文法
VT :终结符集合
VN :非终结符集合 VT∪VN即为文法符号集
P : 产生式集合,产生式描述了将终结符和非终结符组合成串的方法
S :开始符号,S属于VN ,表示的是该文法中最大的语法成分
例:
个人总结:文法即为符号集的闭包中符合特定条件(产生式)的串的集合