内容简介
第1章 编程语言虚拟机
1.1 编程语言的发展
1.2 编程语言虚拟机
1.3 开发环境
第2章 编译流程
2.1 Python字节码
2.2 词法分析
2.3 文法分析
2.4 抽象语法树
2.4.1 构建AST
2.4.2 递归程序的本质
2.4.3 访问者模式
2.4.4 用Visitor重写AST
第3章 二进制文件结构
3.1 pyc文件格式
3.2 加载CodeObject
3.2.1 准备工具
3.2.2 创建CodeObject
3.3 整理工程结构
3.4 执行字节码
第4章 实现控制流
4.1 分支结构
4.1.1 条件判断
4.1.2 跳转
4.1.3 True、False和None
4.2 循环结构
4.2.1 变量
4.2.2 循环内的跳转
第5章 基本的数据类型
5.1 Klass-Oop二元结构
5.2 整数
5.3 字符串
第6章 函数和方法
6.1 函数
6.1.1 栈帧
6.1.2 创建FunctionObject
6.1.3 调用方法
6.2 变量和参数
6.2.1 LEGB规则
6.2.2 函数的参数
6.2.3 参数默认值
6.3 Native函数
6.4 方法
第7章 列表和字典
7.1 列表
7.1.1 列表的定义
7.1.2 操作列表
7.2 字典
7.2.1 字典的定义
7.2.2 操作字典
7.3 增强函数功能
7.3.1 灵活多变的函数参数
7.3.2 闭包和函数修饰器
7.4 总结
第8章 类和对象
8.1 类型对象
8.1.1 TypeObject
8.1.2 object
8.1.3 通过类型创建对象
8.2 自定义类型
8.3 创建对象
8.4 操作符重载
8.5 继承
第9章 垃圾回收
9.1 自动内存管理
9.1.1 概念定义
9.1.2 引用计数
9.1.3 图的知识
9.1.4 Tracing GC
9.2 复制回收
9.2.1 算法描述
9.2.2 算法实现
9.2.3 建堆
9.2.4 在堆中创建对象
9.2.5 垃圾回收
第10章 模块和库
10.1 import语句
10.1.1 ModuleObject
10.1.2 加载模块
10.1.3 from子句
10.2 builtin模块
10.3 加载动态库
10.3.1 定义接口
10.3.2 实现math module
第11章 迭代
11.1 异常
11.1.1 finally子句
11.1.2 break和continue
11.1.3 Exception
11.2 自定义迭代器类
11.3 Generator
11.3.1 yield语句
11.3.2 Generator对象
11.4 总结
附录A Python2字节码表
附录B 高级算法
B.1 字符串查找
B.2 排序算法
B.2.1 快速排序
B.2.2 选择排序
B.2.3 堆排序