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) |