导语
利用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..........
领取专属 10元无门槛券
私享最新 技术干货