上文中我们介绍了PL/0的文法,接下来我们将介绍一个完整的编译系统各个部分~
编译系统介绍
一个经典的编译程序一般包括7个部分:词法分析,语法分析,语义分析及代码生成,代码优化(可省略),代码执行,符号表管理,出错管理。这7个部分之间的关联关系如下图所示:
在本项目中,整个编译过程被分为了3个部分:
- 词法分析将PL/0源代码分为一个个token
- 语法分析和语义分析同时进行,生成Pcode(包括符号表管理和出错管理)
- 对Pcode进行解释执行,使其在java虚拟机上能够运行
编译过程
整个编译过程如下图所示:
由上图我们可以看到,整个编译程序分为四个小部分(词法分析,出错管理,符号表管理,Pcode生成)和一个综合部分(语法分析)。
后面的博客将对这些部分一一介绍~