编译器是当今开发中常见的架构,通常包括以下几个部分:
1. Lexical Analyzer
2. Parser
3. Semantic Analysis
4. Code Generation (to IR)
5. Inliner / Very High Optimizer
6. Optimizer
7. Code Generator
他们包含以下内容
1. Lexical Analyzer 主要进行Token识别
2. Parser 进行语句识别,构建AST
3. Semantic Analysis 主要进行代码正确性,Type 检查
4. Inliner / Very High Optimizer 主要进行高级语言优化,内联优化
5. Optimizer 主要包含:
- Scalar Optimization
+ CSE (Common Sub-expression elimination)
+ PRE (Partial Redundancy Elimination)
+ Constant Folding / Propagation
+ LNO (Loop Nest Optimization) ...
+ DCE (Dead Code Elimination)
6. Code Generation 主要包含:
+ Register Allocation
+ Code rearranging
+ Machine code translation