首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python实现解释器

导语

利用Python实现一个简单的解释器。。。

主要目的是给大家简单地展示一下Python解释器的实现机制。。。

放心,仅此一次。。。

因为。。。

我自己看这个也脑阔疼。。。

很多细节不必去深究。。。

反正深究了你也不一定懂。。。

如果你决心想研究Python的这一领域,前面的所有话都当我没说。。。

并且我由衷地祝福大佬一路顺风。。。

参考文献

(1)Python实现Python解释器

http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html

(2)Byterum源代码

https://github.com/nedbat/byterun

(3)CPython源代码

https://github.com/python/cpython

(4)其他零散的网络资源

主要思路

解释器主要参考了Byterun的架构。。。

可以说是其简易版本。。。

主要实现的内容:

(1)创建VirtualMachine类管理最高层的结构(如调用栈);

(2)创建Frame类用于code_object引用和管理必要的状态信息;

(3)创建Function类用于控制新的帧的创建;

(4)创建Block类用于控制代码流程。

具体的流程详见源代码。。。

能注释和翻译的内容我都写在源代码里。。。

开发工具

Python版本:2.7.13

环境搭建

安装Python并添加到环境变量即可。

使用演示

在下图所示位置输入需要运行的代码:

在cmd窗口运行Interpreter.py文件即可:

更多

这篇文章的技术细节真的不需要去深究。。。

再说的明白点就是这篇文章大多数人把它当作一篇水文好了。。。

我以后肯定也不会再发这类文章。。。

文章的最大目的还是为了说明Python可以应用的领域十分广泛(因为之前好多人问我Python能干嘛之类的问题)。。。

当然它也很简单易上手(Python解释器里一个简单的功能或许写成C语言就是几千行)。。。

That's all..........

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180211G161QA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券