Python源碼剖析之準備工作

我是一個 Python 程序開發者, 也 C 語言愛好者, 爲了加強自己對 Python 語言實現的理解, 最近選擇閱讀下陳儒老師的書, 對Python3.5.1 源碼進行閱讀, 再次記錄下讀書筆記. 歡迎各位指正.

Python 的總體結構

Python 總體分爲三部分: 文件系統(File Groups), 解釋器(Interpreter), 運行時環境 (Runtim Environement):

  • 文件系統用於存儲 Python 腳本文件(.py), 主要分爲內置模塊、第三方模塊、用戶自定義模塊

  • 解釋器用於完成 Python 腳本文件的掃描、解析、編譯和運行,主要分爲 Scanner、Parser、Complier、Exauator四部分

1、Scanner
用於對 Python 腳本的詞法解析, 將腳本切分爲 token

2、Parser
對所有 token 進行語法解析, 創建抽象語法樹

3、Complier
根據抽象語法樹, 創建指令集合(Python字節碼)

4、Exauator
運行 Python 字節碼

  • 運行時環境主要分爲對象/類型系統、內存分配器、運行時狀態信息

1、對象/類型系統
包含 Python 的所有內置對象、用戶自定義的類型和對象

2、內存分配器
負責維護 Python 對象創建時對內存的申請

3、運行時狀態信息
負責維護解釋器在執行字節碼時不同的狀態之間切換動作

總體結構圖:

 

 

 作者:KK(原創)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章