我是一個 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(原創)