标记化、解析、AST、符号表、编译器通道、代码对象、常量和局部变量、字节码生成和字节码优化。
9 items
Tokenize 模块内部结构、Parser/tokenize.c 中的 C 分词器,以及缩进如何变成 INDENT/DEDENT 标记。
CPython的PEG解析器,Grammar/python.gram,生成的Parser/parser.c,以及解析树构建。
Parser/Python.asdl 中定义的 AST 节点类型、ast 模块以及 AST 节点如何映射到源位置。
Python/symtable.c 中的范围分析:编译前的本地、全局、自由和单元变量分类。
从 AST 到 CFG 再到线性字节码的多遍降级,以及 Python/compile.c 中每个编译器遍的作用。
PyCodeObject 字段:co_code、co_consts、co_names、co_varnames、co_filename 以及它们在运行时的使用方式。
编译时常量如何折叠、名称驻留以及在代码对象中分配的局部变量槽。
指令发射、跳转修复以及 Python/compile.c 中生成最终字节码数组的汇编器。
Peephole 优化器传递:Python/flowgraph.c 中的常量折叠、死代码消除和超级指令形成。