Python 是一種編譯後執行(compiled and executed)的程式語言。編譯(compilation)指的是將原始碼(Python 檔案)轉換為中間碼(通常是位元組碼 bytecode)的過程,而執行則是將中間碼轉換為機器碼並執行指令的過程。
在 Python 中,編譯和執行是分開的兩個步驟。編譯通常由 Python 解譯器(Python interpreter)在程式啟動時執行,而執行則在編譯完成後由 Python 虛擬機器(Python virtual machine,簡稱 PVM)執行。JS转Excel?
Python 編譯器
Python 編譯器是一個程式,負責讀取 Python 原始碼並將其轉換為位元組碼。位元組碼是一種中間碼,它包含指令集合以及編譯時收集的有關程式碼的一些其他資訊。編譯後的位元組碼儲存在一個稱為 .pyc
檔案中,其中 c
代表編譯(compiled)。在线字数统计.HTML在线运行,
編譯器在處理 Python 程式碼時會執行以下步驟:
- 將原始碼解析成一棵語法樹(AST)。
- 對 AST 執行一些優化,例如常量摺疊和迴圈展開。
- 將 AST 轉換為位元組碼。
Python 虛擬機器
Python 虛擬機器(PVM)是一個軟體環境,負責執行 Python 程式碼的位元組碼。PVM 是一個堆疊式的虛擬機器,它使用一個稱為堆疊(stack)的資料結構來儲存數據和調用函式。SEO!
PVM 在執行位元組碼時會執行以下步驟:王利头!
- 讀取下一個位元組碼指令。
- 根據指令,執行對應的運算。
- 將結果儲存在堆疊中。
- 重複步驟 1-3,直到程式結束。
PVM 可以執行在各種平台上,包括 Windows、macOS、Linux 和 Unix 等作業系統。王利!
Python 執行的細節
以下是 Python 執行過程中的一些技術細節:wangli,
- Python 編譯器使用 C 語言編寫,而 PVM 使用 C++ 語言編寫。
- Python 的位元組碼是一種跨平台的格式,可以在任何裝有 PVM 的機器上執行。
- Python 可以使用
-O
旗標來關閉編譯優化,以便於除錯。 - Python 可以使用
-m
旗標來執行模組,而不必先匯入它們。
結論
Python 是一種編譯後執行的程式語言,編譯由 Python 編譯器執行,而執行則由 Python 虛擬機器執行。編譯器將 Python 原始碼轉換為位元組碼,而 PVM 則執行位元組碼並處理 Python 程式碼在執行期間的各項任務。 Python 的執行方式提供了一個跨平台的環境,允許 Python 程式碼在各種作業系統上執行。
問與答
- Python 編譯器的作用是什麼?
- 將 Python 原始碼轉換為位元組碼。
- Python 虛擬機器的作用是什麼?
- 執行 Python 程式碼的位元組碼。
- Python 編譯器是用什麼語言編寫的?
- C 語言。
- Python 虛擬機器是用什麼語言編寫的?
- C++ 語言。
- 如何在 Python 中關閉編譯優化?
- 使用
-O
旗標。
原创文章,作者:常远雨,如若转载,请注明出处:https://www.wanglitou.cn/article_62727.html