编译器

编译器(compiler)的几个步骤

  • 词法分析(lexical analyze): 将程序代码拆分成若干个词;
  • 语法分析(syntax analyze): 生成 AST 树;
  • 语义分析(semantic analyze): 给 AST 树添加语义注释, 并生成 Symbol Table(判断是否有重复的命名空间等);
  • 优化: 合并一些语句;
  • 代码生成: 转换为低层级的语言;

解释器和编译器步骤大体相同, 只是解释器不会将代码转换为低层级语言执行。

Compilers and Interpreters