《深入Python虚拟机》笔记4-编译Python源代码

尽管Python不被认为是一个编译型的语言,但它确实是。在编译期间,一些Python源码被转换成由虚拟机执行的字节码。Python中的这一编译过程相对比较简单,没有多少复杂的步骤。主要包含以下的一些步骤:

1. 将Python源码解析成解析树。

2. 将解析树转换成抽象语法树(AST)

3. 生成符号表。

4. 从AST生成代码对象,包括:

4.1 将AST转换成为控制流图

4.2 从控制流图产生一个代码对象

其中解析源码生成解析树,并将其转换成抽象语法树是标准过程,所以我们着重讲解如何从抽象语法树到控制流图和从控制流图产生代码对象。对从解析树到抽象语法树这一过程感兴趣的人可以看看龙书获得更多深入的信息。