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..........
※Python代碼技巧,你值得擁有!
※Python爬蟲的債市小試(二)
TAG:Python |