前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python写的Python解释器(一)

Python写的Python解释器(一)

作者头像
哒呵呵
发布2018-08-06 11:30:19
1.5K0
发布2018-08-06 11:30:19
举报

编译自:http://www.aosabook.org/en/500L/a-python-interpreter-written-in-python.html 作者:Taavi Burns 翻译:鸿 如有翻译问题或建议,请公众号留言

导论 Byterun是一个用Python实现的Python解释器。它的结构类似于CPython(Python的主流实现方式)。

Python解释器 在本文中,“解释器”的含义指的是运行Python程序的最后一步。在解释器处理之前,Python代码还会经过:词法分析,语法解析和编译。经历过这些步骤,Python源代码便从文本行转换为解释器可以理解的结构化的指令代码对象。解释者的工作是获取这些代码对象并按照说明操作。Python被称为“解释型语言”是因为编译步骤的工作量相对于编译语言较少(而解释器的工作量相对较多)。

Python写的Python解释器 Byterun是一个用Python编写的Python解释器。不要奇怪,现在广泛使用的C编译器gcc就是用C语言编写的。所以,可以使用绝大多数编程语言编写Python解释器。 用Python编写Python解释器既有优点也有缺点。最大的缺点就是运行速度:Byterun执行代码要比在CPython中执行代码慢得多。但是,Byterun最初是作为一种学习而设计的,所以速度对我们来说并不重要。使用Python的最大优点是我们可以更容易地实现解释器。例如,当需要创建一个类时,Byterun可以回退到“真正的”Python。另一个优点就是是Byterun易于理解。

解释器的工作原理 Python解释器如何工作的呢?首先,Python解释器是一个虚拟机,这意味着它是模拟物理计算机运行的软件,并且也是一个堆栈机:它操作多个堆栈来执行其操作,与寄存器机相比,堆栈机会写入和读取特定存储器位置。其次,Python解释器是一个字节码解释器:它的输入是字节码的指令集。当您编写Python时,词法分析器,解析器和编译器将生成代码对象供解释器进行操作。每个代码对象都包含一组要执行的指令(字节码 )以及解释器需要的其他信息。字节码是Python代码的中间代表:它表示解释器可以理解的源代码形式。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档