python 執行機制

2022-03-22 18:05:27 字數 1474 閱讀 1419

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 提供相應平台的直譯器即可。

session執行機制

session機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表 的結構 也可能就是使用 雜湊表 來儲存資訊。當程式需要為某個客戶端的請求建立乙個session的時候,伺服器首先檢查這個客戶端的請求裡是否已包含了乙個session標識 稱為sessionid,如果已包含乙個sessionid則說明...

try catch finally執行機制

finally的執行 如下的程式所示,注釋中是執行的順序 public class test public static string test finally public static string test1 finally其實是僅在return 語句執行前執行,如果return 乙個函式,那...

runtime執行機制

這篇文章主要介紹的是runtime是什麼以及怎麼用!希望對讀者有所幫助!第乙個問題,1 runtime實現的機制是什麼,怎麼用,一般用於幹嘛?runtime是一套比較底層的純c語言api,屬於1個c語言庫,包含了很多底層的c語言api。在我們平時編寫的oc 中,程式執行過程時,其實最終都是轉成了ru...