编译器工作流程:
源代码 -> (词法分析) ->记号流 -> (语法分析) -> 语法树 -> (语义分析) -> 语法树 -> (中间代码生成) -> 中间代码 -> (中间代码优化) -> 优化后的中间代码 -> (目标代码生成) -> 目标代码
编译器各模块任务:见课堂PPT
中间代码的作用:
生成一种类似于机器语言的,但又和底层平台无关的中间表示,将编译器分为前端和后端,提高编译器的开发效率与可移植性。