手写 Python 虚拟机
华为编译专家揭秘 Python 底层原理
海纳  华为资深编译专家,原 Huawei JDK 团队负责人
飙升榜 第1名
专栏
未完结·共 28 讲·已更新 4 讲·每周一 / 三 / 五更新
|
432 人已学
|
收藏

【上新特惠,限时秒杀】

读者交流群,戳此加入
原价 ¥99,早鸟到手 ¥79
新人首单仅 ¥59

你将获得

  • Python 基础特性与执行模型详解
  • 深入剖析字节码转换与执行全过程
  • 掌握内存管理、编译优化等核心技术
  • 各类虚拟机性能对比与最佳实践

课程介绍

由于国内芯片自主研发进程加快,各个公司开始筹建自己的编译器团队以开发特定领域的大模型,这一趋势显著增加了 AI 编译器领域对专业人才的需求。但在传统教育体系下走入社会的开发工程师大多不具备自己独立设计并优化编译器和虚拟机的能力,在遇到内存管理、性能调试等生产问题时往往不知所措。

那如何才能具备这样的能力呢?

海纳作为一名拥有多年编译器开发经验的技术专家,经过多年的探索和实践,发现动手写一个虚拟机是快速上手编译开发的最优的路线。通过手写 Python 虚拟机,你可以获得从宏观到微观多维度的编程能力。

  • 深入了解编程语言的工作原理和执行流程。
  • 掌握编译原理,特别是编译器的前端和后端工作机制。
  • 了解如何优化虚拟机的性能,包括 JIT 编译技术和内存管理策略。
  • 实现虚拟机的内存管理模块,掌握自动垃圾回收算法和内存分配策略。
  • 通过构建一个完整的虚拟机项目,体验软件工程从设计、编码到测试和维护的全过程。

在课程中,海纳会带你一步步实现一个自己的 Python 虚拟机,每一环节都会配备详尽的示例代码,并融入他在行业内积累的宝贵经验和设计决策背后的思考。

课程设计

为了让整个项目既环环相扣,又有一定的独立性,海纳按照不同的模块将课程分成了 6 个章节。

第一章 编程语言的发展历程与基本架构

这一章海纳老师会带你深入探讨虚拟机的起源与演进,了解它的核心优势,学习编译器是如何将源代码转化为字节码的,你还可以通过实例看到虚拟机的执行过程,包括字节码序列化、解释执行及 JIT 编译技术。这些都是 Python 虚拟机相关的背景知识,是后面具体实操的理论基础。

第二章 控制流

学完这一章的内容,你会了解到 Python 字节码指令集、字节码文件的格式、虚拟机如何对字节码文件进行加载等内容。然后就可以实现最基本的控制流了,例如分支结构、循环结构。也就是说,虚拟机已经具备了基本的计算能力。

第三章 函数的实现机制

函数作为 Python 语言的第一类公民,可以做为参数传递给其他函数,也可以做为返回值被传出函数之外。这是函数式编程最基本的特性,但要实现函数式编程,还需要理解自由变量、闭包等特性,所以这一章你会全面了解语言虚拟机是如何实现这些高级特性的。

第四章 对象系统和语言内建对象

面向对象编程的三大特征是封装、继承和多态。在这一章中,你会看到虚拟机是如何实现通过类型创建对象,以及如何表达类型之间的继承关系这些基本内容的,然后进一步掌握运行时识别、函数覆写、操作符重载等面向对象编程中的高级主题。

第五章 内存管理与垃圾回收

这一章你会学到 Python 对象的内存分配策略,包括静态分配与动态分配的原理与实现。同时也对垃圾回收算法(如引用计数、标记清除、分代回收)的选择与实现有初步的了解。垃圾回收算法是一个独立且庞大的体系,而这一章将成为你学习垃圾回收算法的第一课,带你轻松走进内存管理知识殿堂。

第六章 异常、迭代、模块系统

异常、迭代、模块系统等高级主题相对独立,但同时也有一些依赖关系。在前五章的基础上,你完全有能力自己设计并实现这些主题。所以这一部分的内容相对简略,以说明架构设计为主,你可以根据课程中给出的架构设计,自己动手实现这些高级特性。

课程目录

查看更多
免费试读

适合人群

本课程面向有一定的 Python 编程背景,特别是那些对编译器设计、操作系统和计算机架构有基本了解的工程师。

订阅须知

  1. 订阅成功后,推荐通过“极客时间”App 端、Web 端学习。
  2. 本专栏为虚拟商品,交付形式为图文 + 音频,一经订阅,概不退款。
  3. 订阅后分享海报,每邀一位好友订阅有现金返现。
  4. 戳此先充值再购课更划算,还有最新课表、超值赠品福利。
  5. 企业采购推荐使用“极客时间企业版”便捷安排员工学习计划,掌握团队学习仪表盘。
  6. 戳此申请学生认证,订阅课程享受原价 5 折优惠。
  7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。
讲师

海纳

华为资深编译专家,原 Huawei JDK 团队负责人

海纳,华为资深编译器专家,原 Huawei JDK 团队负责人,极客时间课程《编程高手必备的内存知识》的作者。2019 年他出版了《自己动手写 Python 虚拟机》一书,此外他还长期维护知乎专栏《进击的 Java 新人》,近期他的《从零开始写 Linux 内核》也即将面...查看更多
编辑推荐
讲师的其他课程
编程高手必学的内存知识
海纳
华为编译器高级专家,原 Huawei JDK 团队负责人

33讲 | 20845 人已学习

¥59¥99
看过的人还看了
数据结构与算法之美
王争
前 Google 工程师

81讲 | 284499 人已学习

¥68¥199
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 225864 人已学习

¥68¥199
AI 大模型之美
徐文浩
bothub 创始人

33讲 | 33516 人已学习

¥68¥199
操作系统实战 45 讲
彭东
网名 LMOS,Intel 傲腾项目关键开发者

60讲 | 65552 人已学习

¥68¥199
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 124176 人已学习

¥98¥299
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 181895 人已学习

¥98¥399