编译器。

284 阅读1分钟

词法分析

 通过有限状态机把源代码分割为一系列的Token。一般分为以下几类:关键字,标识符,字面量,特殊符号等。可以使用lex的程序来实现。

语法分析

 对上文扫描器产生的代码进行分析,产生语法树。采用上下文无关语法的分析手段。 yacc

语义分析

 语义分析器来完成。静态语义包括声明和类型匹配,类型的转换。动态语义一般指运行期出现的语义相关的问题

中间语言生成

  语法树转换为中间代码后进行优化。前端优化与机器无关的代码,后端把中间代码转换为目标机器代码

目标代码生成与优化

代码生成器和目标代码优化器