作者:豌豆花下猫来源:Python猫

花下猫语:最近我发现了一个《Python behind the scenes》系列文章,它计划深度地剖析 Python 幕后的 CPython 解释器的工作原理。作者专门建了一个网站来发布该系列文章,目前已发布 4 篇。这些文章都挺长的,想要翻译好,并不容易。而本文接下来的内容,是该作者分享的一篇简短的参考材料,我先翻译出来热热身~~


原文:https://tenthousandmeters.com/materials/python-behind-the-scenes-a-list-of-resources

作者:Victor Skvortsov

译者:豌豆花下猫(“Python猫”公众号作者)

声明:本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。

在研究 CPython 以及写作《CPython behind the scenes》系列时,我发现了一些很有用的文档、帖子和演讲。它们确实是一些非常好的资源,但是并不能回答我的太多问题。这就是为什么我最终决定要分享自己在学习 CPython 源代码时的经验。

>> Python 文档。在所有与 Python 相关的主题上,Python 文档几乎都是第一的查阅选择。虽然它缺少涵盖解释器原理的特殊内容,但是 Python/C API 文档描述了 CPython 的公共接口和一些实现细节。它附录了一份《the tutorial for C programmers》,该教程展示了如何使用 C 语言来扩展 Python 程序,或者将 Python 嵌入到 C 应用程序中。我敢打赌,只要认真地完成这些阅读内容,你就会对 CPython 的工作原理相当地了解。

>> PEP。虽然没有哪个 PEP 描述了解释器的总体设计,但是对 Python 的大多数主要更改,都有相应的提案。PEP 很赞。它们提供了技术和历史的背景。文档的作者们习惯于适当地引用相关的 PEP。例如,Python/C API 的参考内容中至少提到了一次 PEP-432,描述了 CPython 新的初始化序列的转变,以及 PEP-587(这是其部分的实现)。

>> Obi Ike-Nwosu 写的《 Inside The Python Virtual Machine》一书。在我看来,它是关于 CPython 内部原理的最全面、最准确的资料。

>> Anthony Shaw 写的《Your Guide to the CPython Source Code》。这个标题不言而喻。如果想直接研究源代码,你应该选择它!

>> Philip Guo 写的《CPython internals: A ten-hour codewalk through the Python interpreter source code》。如果你想要更为简单的介绍,那么这些讲座视频可能是最好的开始。它们基于 CPython 2.7,但是原理保持不变。

>> Yaniv Aknin 写的《Python’s Innards series》,介绍的是 CPython 3 VM 的早期版本,但仍然非常有用。

>> Eli Bendersky 写的《Python internals》文章。关于符号表(symbol table)的帖子特别好。

>> Stupid Python Ideas 博客。有各种 Python 相关主题的文章。有些涉及 CPython 内部原理。强烈推荐,但可能不好检索。

>> Allison Kaptur 写的《A Python Interpreter Written in Python》。它介绍了一个玩具版 Python VM,能够执行真正的 Python 字节码。这作为解释器的入门介绍,可能会很有用。但是,我觉得不必要花大量时间研究一个玩具示例,因为 CPython 本身并没有那么复杂。

>> Eric Snow 的演讲《To GIL or not to GIL》。它的主题是子解释过程。我喜欢它的地方是 Eric 在开头描述 CPython 架构的方式。

参考材料:

1、Python behind the scenes (https://tenthousandmeters.com/)2、the tutorial for C programmers (https://docs.python.org/3.9/extending/index.html#extending-index)3、Inside The Python Virtual Machine (https://leanpub.com/insidethepythonvirtualmachine)4、Your Guide to the CPython Source Code (https://realpython.com/cpython-source-code-guide/)5、CPython internals: A ten-hour codewalk through the Python interpreter source code (https://www.youtube.com/playlist?list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S)6、Python’s Innards series (https://tech.blog.aknin.name/category/my-projects/pythons-innards/)7、Python internals (https://eli.thegreenplace.net/tag/python-internals)8、Stupid Python Ideas (http://stupidpythonideas.blogspot.com/)9、A Python Interpreter Written in Python (http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html)10、To GIL or not to GIL (https://www.youtube.com/watch?v=7RlqbHCCVyc)Python猫 发起了一个读者讨论这些资料有用么?精选讨论内容

老荀

1

属于拔高内容

________________R

1

有是肯定有,但是作为一个Python新人不知道什么时候学这些合适。是能基本会用一些框架以后呢?还是学完基础就可以开始学解释器?

作者

3

不是必学,新人绕道

Python猫技术交流群开放啦!群里既有国内一二线大厂在职员工,也有国内外高校在读学生,既有十多年码龄的编程老鸟,也有中小学刚刚入门的新人,学习氛围良好!想入群的同学,请在公号内回复『交流群』,获取猫哥的微信(谢绝广告党,非诚勿扰!)~

近期热门文章推荐:

如果只推荐一本 Python 书,我要 Pick 它!
Python 为什么使用缩进来划分代码块?
才 30 岁而已,有什么好焦虑的
如何使用 Python 操作 Git 代码?GitPython 入门介绍


©著作权归作者所有:来自51CTO博客作者mb5fdcaee2972df的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 一篇文章掌握 Python 内置 zip() 的全部内容
  2. 动态加密?看我如何见招拆招爬取某点评全站内容!
  3. 别再问如何用Python提取PDF内容了!
  4. 《Python知识手册》更新V2.2版,添加 Plotly 可视化实战内容以及部
  5. 使用pkg打包编译nodejs程序,手动设置缓存内容
  6. 从微信赞赏升级来谈谈公号作者的境况
  7. 程序员如何优雅的排版公众号的内容
  8. 混合内容下的浏览器行为 [每日前端夜话(0x08)]
  9. 面试官最爱问你的,网络分层中每一层有哪些内容

随机推荐

  1. linux / vi 常用命令(ubuntu环境)
  2. Linux-自己创建动态库静态库
  3. 多队列网卡CPU中断均衡
  4. Linux系统编程——进程间通信:信号中断处
  5. Linux下安装mysql 出现依赖包冲突解决方
  6. ubi文件系统制作,还是"-c"选项的问题
  7. 求GridControl_11.1.0.1.0_Linux_x86-64_
  8. Linux 系统下 DNS 服务器的架设
  9. Linux CentOS6环境下MySQL5.1升级至MySQL
  10. Linux 开/关 ICMP 回应(防止被ping)