𝔖 Scriptorium
✦   LIBER   ✦

📁

自己动手写Python虚拟机

✍ Scribed by 海纳


Publisher
北京航空航天大学出版社
Year
2019
Tongue
Chinese
Leaves
342
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


本书按内容分为六个部分,第一部分介绍语言虚拟机的基本概念,并实现字节码解释器;第二部分,实现内嵌类型,如整数、字符串、列表和字典等;第三部分,实现了函数;第四部分,实现自定义类、对象和方法;第五部分,实现垃圾回收,也就是自动内存管理;第六部分,模块和迭代。本书的章节内容之间都有很强的依赖性,后面的章节内容都是在前面章节的基础上去实现的,所以读者必须按部就班地从前向后阅读,才能保证阅读的流畅。

本书适合的人群包括:在校大学生(可以通过本书掌握很多计算机工作运行的核心知识),以及对编译器,编程语言感兴趣的人。

✦ Table of Contents


封面
书名
版权
前言
目录
第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 KlassOop二元结构
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 总结
附录APython2 字节码表
附录B高级算法
B.1 字符串查找
B.2 排序算法
B.2.1 快速排序
B.2.2 选择排序
B.2.3 堆排序
封底


📜 SIMILAR VOLUMES


自己动手写操作系统
✍ 于渊 📂 Library 📅 2005 🏛 电子工业出版社 🌐 Chinese

内容简介 · · · · · · 本书在详细分析操作系统原理的基础上,用丰富的实例代码,一步一步地指导读者用C语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。全书共分7章。附CD-ROM光盘一张。

自己动手写网络爬虫
✍ 罗刚; 王振东 📂 Library 📅 2010 🏛 清华大学出版社 🌐 Chinese

<p>本书介绍了网络爬虫开发中的关键问题与Java实现。主要包括从互联网获取信息与提取信息和对Web信息挖掘等内容。本书在介绍基本原理的同时注重辅以具体代码实现来帮助读者加深理解,书中部分代码甚至可以直接使用。 本书适用于有Java程序设计基础的开发人员。同时也可以作为计算机相关专业本科生或研究生的参考教材。</p>

Java虚拟机精讲
✍ 高翔龙 📂 Library 📅 2015 🏛 电子工业出版社 🌐 Chinese

<p>《Java虚拟机精讲》内容简介:HotSpot VM是目前市面上高性能JVM的代表作之一,它采用解释器+JIT 编译器的混合执行引擎,使得Java 程序的执行性能从此有了质的飞跃。本书以极其精练的语句诠释了 HotSpot VM的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析 HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew收集器、Parallel收集器、CMS(Concurrent-Mark-Sweep)收集器和 G1(Garbage-First)收集器)、类加

Java虚拟机精讲
✍ 高翔龙 📂 Library 📅 2015 🏛 电子工业出版社 🌐 Chinese

<p>《Java虚拟机精讲》内容简介:HotSpot VM是目前市面上高性能JVM的代表作之一,它采用解释器+JIT 编译器的混合执行引擎,使得Java 程序的执行性能从此有了质的飞跃。本书以极其精练的语句诠释了 HotSpot VM的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析 HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew收集器、Parallel收集器、CMS(Concurrent-Mark-Sweep)收集器和 G1(Garbage-First)收集器)、类加