python幕后解释器:一系列的学习资源

做者:豌豆花下猫html

来源:Python猫python

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


原文:https://tenthousandmeters.com...ide

做者:Victor Skvortsov学习

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

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

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

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(这是其部分的实现)。spa

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

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 架构的方式。

参考材料:

一、Python behind the scenes (https://tenthousandmeters.com/)

二、the tutorial for C programmers (https://docs.python.org/3.9/e...

三、Inside The Python Virtual Machine (https://leanpub.com/insidethe...

四、Your Guide to the CPython Source Code (https://realpython.com/cpytho...

五、CPython internals: A ten-hour codewalk through the Python interpreter source code (https://www.youtube.com/playl...

六、Python’s Innards series (https://tech.blog.aknin.name/...

七、Python internals (https://eli.thegreenplace.net...

八、Stupid Python Ideas (http://stupidpythonideas.blog...

九、A Python Interpreter Written in Python (http://aosabook.org/en/500L/a...

十、To GIL or not to GIL (https://www.youtube.com/watch...

相关文章
相关标签/搜索