中南大学编译原理慕课笔记整理
课程要求
-
了解计算结高级语言被计算机接受,扫描,词法分析,语义分析,语义解释执行的原理和过程
-
掌握编译原理和基本算法,各种概念和语言秒速
先导课程
-
组成原理-计算及组成结构
-
微机原理-汇编语言与机器语言
-
离散数据-推理机器完备性
-
数据结构-树,表的表示与实现
-
操作系统-提供虚拟机和系统调用
-
高级程序设计语言-语言定义和编程
编译原理引论
-
编译程序 VS 翻译程序 VS 解释程序
翻译程序: 将一种语言程序(源程序)翻译成另外一种语言程序(目标语言程序)
编译程序:将一种高级语言等价的转换成一种低级语言(编译语言,机器语言)
解释程序:将源程序输入但是不产生目标程序,而是边解释边执行
-
编译过程
(并非每个编译阶段都有以下过程)
-
词法分析
扫描分解源程序的字符,识别出单词
单词:逻辑上紧密相连的一组字符,字符具有集体意义
-
语法分析
在词法分析的基础上,将单词序列分解成各类语法短语."程序,语句,表达式"
语法单位,语法树
语法规则:描述程序结构的规则
语法分析确定整个程序是否在语法正确
-
语义分析
类型检查
-
【中间代码生成】
-
优化
-
目标代码生成
-
-
编译过程中的一些名词解释
-
遍(pass)
-
前端 VS 后端
前端:与语言有关,也就是中间代码前,如果有中间代码生成的话,可以看成前端产生的结果
-
参考
- 中南大学编译原理慕课
- 《编译原理》-清华大学出版