C語言中文網 目錄

Python程序運行機制詳解(入門必讀)

< 上一頁Python是什么 Python下載和安裝下一頁 >

Python 是一門解釋型的編程語言,因此它具有解釋型語言的運行機制。

計算機程序,其實就是一組計算機指令集,能真正驅動機器運行的是機器指令,但讓普通開發者直接編寫機器指令是不現實的,因此就出現了計算機高級語言。高級語言允許使用自然語言(通常就是英語)來編程,但高級語言的程序最終必須被翻譯成機器指令來執行。

高級語言按程序的執行方式可以分為編譯型解釋型兩種。

編譯型語言是指使用專門的編譯器,針對特定平臺(操作系統)將某種高級語言源代碼一次性“翻譯”成可被該平臺硬件執行的機器碼(包括機器指令和操作數),并包裝成該平臺所能識別的可執行程序的格式,這個轉換過程稱為編譯(Compile)。編譯生成的可執行程序可以脫離開發環境,在特定的平臺上獨立運行。

有些程序編譯結束后,還可能需要對其他編譯好的目標代碼進行鏈接,即組裝兩個以上的目標代碼模塊生成最終的可執行程序,通過這種方式實現低層次的代碼復用。

因為編譯型語言是一次性編譯成機器碼的,所以可以脫離開發環境獨立運行,而且通常運行效率較高。但因為編譯型語言的程序被編譯成特定平臺上的機器碼,因此編譯生成的可執行程序通常無法移植到其他平臺上運行,如果需要移植,則必須將源代碼復制到特定平臺上,針對特定平臺進行修改,至少需要采用特定平臺上的編譯器重新編譯。

現有的 C 、C++、Objective-C、Pascal 等高級語言都屬于編譯型語言。

解釋型語言是指使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執行的語言。解釋型語言通常不會進行整體性的編譯和鏈接處理,解釋型語言相當于把編譯型語言中的編譯和解釋過程混合到一起同時完成。

可以這樣認為,每次執行解釋型語言的程序都需要進行一次編譯,因此解釋型語言的程序運行效率通常較低,而且不能脫離解釋器獨立運行。但解釋型語言有一個優勢,就是跨平臺比較容易,只需提供特定平臺的解釋器即可,每個特定平臺上的解釋器都負責將源程序解釋成特定平臺的機器指令。解釋型語言可以方便地實現源程序級的移植,但這是以犧牲程序執行效率為代價的。

編譯型語言和解釋型語言的對比如圖 1 所示。

編譯型語言和解釋型語言
圖 1 編譯型語言和解釋型語言

此外,還有一種偽編譯型語言,如 Visual Basic,它屬于半編譯型語言,并不是真正的編譯型語言。它首先被編譯成 P- 代碼,并將解釋引擎封裝在可執行程序內,當運行程序時,P- 代碼會被解析成真正的二進制代碼。

從表面上看,Visual Basic 可以編譯生成可執行的 EXE 文件,而且這個 EXE 文件也可以脫離開發環境,在特定平臺上運行,非常像編譯型語言。實際上,在這個 EXE 文件中,既有程序的啟動代碼,也有鏈接解釋程序的代碼,而這部分代碼負責啟動 Visual Basic 解釋程序,再對 Visual Basic 代碼進行解釋井執行。

Python 語言屬于解釋型語言,因此運行 Python 程序時需要使用特定的解釋器進行解釋、執行。

解釋型的 Python 語言天生具有跨平臺的能力,只要為 Python 提供相應平臺的解釋器即可。

接下來將會介紹為不同平臺安裝 Python 解釋器。

< 上一頁Python是什么 Python下載和安裝下一頁 >

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo