词法分析
通过有限状态机把源代码分割为一系列的Token。一般分为以下几类:关键字,标识符,字面量,特殊符号等。可以使用lex的程序来实现。
语法分析
对上文扫描器产生的代码进行分析,产生语法树。采用上下文无关语法的分析手段。 yacc
语义分析
语义分析器来完成。静态语义包括声明和类型匹配,类型的转换。动态语义一般指运行期出现的语义相关的问题
中间语言生成
语法树转换为中间代码后进行优化。前端优化与机器无关的代码,后端把中间代码转换为目标机器代码
目标代码生成与优化
代码生成器和目标代码优化器