http://blog.sina.com.cn/s/blog_13de2f64d0102vcr8.html
一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)
编译器的主要组成部分:
1、源文件
2、词法分析
3、语法分析
4、语义分析
5、中间代码生成
6、优化代码
7、目标代码生成
图1 编译器基本结构
编译器的阶段 |
产生的结果 |
用途 |
词法分析 |
单词流 |
语法高亮 |
语法分析 |
抽象语法树 |
语法高亮;代码格式化;代码折叠 |
语义分析 |
带类型信息和符号表的抽象语法树 |
重命名;重构;代码自动生成;代码自动改写 |
数据流分析 |
控制流图、冲突图 |
编辑后继续运行(Edit and Continue) |