Chapter1 编译器组成
原创小于 1 分钟
编译器的结构
- 词法分析 Lexical analysis (Scanning)
- 语法分析 Syntax analysis (Parsing)
- 语义分析 Semantic analysis
相关信息
以上三步的目的是通过分析输入代码,生成能被统一处理的中间层代码,亦即编译器前端(front-end)
- 中间代码生成 IR Generation
- 中间代码优化 IR Optimization
- 最终代码生成 Generation
- 最终代码优化 Optimization
词法分析
本质上就是为了输出一个合法的 token 序列,每个 token 就是一个关键词或者一个关键词+词素(lexeme)的组合如
语法分析
- 就是将一个 token 序列表示为一棵语法树
语义分析
- 就是将语法分析得到的语法树转化为一个带注解(annotated)的语法树
中间代码生成
- 从语法树生成通用的中间代码