当前位置: 首页 > 后端技术 > Python

Python幕后解释器:系列学习资源

时间:2023-03-26 14:19:19 Python

作者:猫下的豌豆花来源:猫语下的Python猫花:最近发现系列文章《Python behind the scenes》,打算深入剖析python工作原理背后的CPython解释器。作者特意建了一个网站来发表这一系列文章,目前已经发表了4篇。这些文章很长,要翻译好并不容易。本文以下内容为作者分享的简短参考资料。我先翻译一下预热一下~~原文:https://tenthousandmeters.com...作者:VictorSkvortsov译者:豌豆花下猫(《蟒猫》公众号作者)声明:本翻译为以交流学习为目的,基于CCBY-NC-SA4.0许可协议。为便于阅读,内容略有修改。在研究CPython和编写《CPython behind the scenes》系列时,我发现了一些有用的文档、帖子和演讲。它们确实是一些非常好的资源,但它们并没有回答我太多的问题。这就是为什么我最终决定分享我在学习CPython源代码时的经验。Python文档。当涉及到所有与Python相关的主题时,Python文档几乎是首选。虽然缺少涵盖解释器原理的专门内容,但Python/CAPI文档描述了CPython的公共接口和一些实现细节。它附加了一个《the tutorial for C programmers》教程,展示了如何使用C语言扩展Python程序,或将Python嵌入到C应用程序中。我敢打赌,只要仔细阅读本文,您就会对CPython的工作原理有一个很好的理解。政治公众人物。虽然没有单个PEP描述解释器的整体设计,但有对Python的大多数主要更改的建议。PEP很棒。它们提供技术和历史背景。文档作者习惯于适当地引用相关的PEP。例如,对Python/CAPI的引用至少提到一次PEP-432,它描述了向CPython的新初始化序列的过渡,以及PEP-587(它是它的部分实现)。《 Inside The Python Virtual Machine》作者:ObiIke-Nwosu。在我看来,它是CPython内部最全面、最准确的资源。《Your Guide to the CPython Source Code》作者:安东尼·肖。标题不言自明。如果你想直接研究源码,你应该选择它!《CPython internals: A ten-hour codewalk through the Python interpreter source code》作者:PhilipGuo。如果您想要更简单的介绍,这些讲座视频可能是最好的起点。它们基于CPython2.7,但原理保持不变。《Python’s Innards series》作者YanivAknin,关于CPython3VM的早期版本,但仍然非常有用。《Python internals》EliBendersky的文章。符号表上的帖子特别好。愚蠢的Python创意博客。有关于各种Python相关主题的文章。一些涉及CPython内部。强烈推荐,但可能不容易检索。AllisonKaptur的《A Python Interpreter Written in Python》。它引入了一个能够执行真正的Python字节码的PythonVM的玩具版本。这可能有助于介绍解释器。但是,我认为不值得在玩具示例上花费大量时间,因为CPython本身并没有那么复杂。EricSnow的演讲《To GIL or not to GIL》。它的主题是子解释过程。我喜欢的是Eric一开始描述CPython架构的方式。参考资料:1、Python幕后花絮(https://tenthousandmeters.com/)2、C程序员教程(https://docs.python.org/3.9/e...3、InsideThePythonVirtualMachine(https://leanpub.com/insidethe...4、CPython源代码指南(https://realpython.com/cpython...5、CPython内部:通过Python解释器源代码进行十小时的代码走查代码(https://www.youtube.com/playl...6、Python的内幕系列(https://tech.blog.aknin.name/...7、Python内部结构(https://eli.thegreenplace.net...8、StupidPythonIdeas(http://stupidpythonideas.blog...9、APythonInterpreterWritteninPython(http://aosabook.org/en/500L/a...10、ToGILor不要GIL(https://www.youtube.com/watch...