溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python解釋器是什么

發(fā)布時間:2021-07-30 17:52:05 來源:億速云 閱讀:158 作者:Leah 欄目:大數據

這篇文章給大家介紹python解釋器是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

從計算機編程語言說起,它主要分為三類:機器語言、匯編語言、高級語言。

機器語言是一種計算機可以直接識別并執(zhí)行的二進制指令集。由于其可以直接交給CPU執(zhí)行,所以是最快的,但是它需要我們記住每一個指令的代碼與對應的動作,想想我們寫代碼的時候是操作一串串的01序列,難度得有多大。

為了克服機器語言的缺點,人們就用一些助記符來代替機器碼,也就是使用一些與實際意義相近的縮略詞來代替動作,例如ADD、SUB、MOV等,這就有了很大的進步,可以方便的編寫,但是它仍然是對機器進行操作的,相較于高級程序語言更接近于底層,所以匯編語言是低級語言。

不論是機器語言還是匯編語言都是面向硬件的操作,它們對于機器是依賴的,不同的設備對應的編寫方式可能不同。然而,高級語言是面向用戶的語言,我們只要編寫好程序內容,通過編譯或者解釋程序,就可以對機器進行操作。這里提到的編譯或者解釋程序就是一個翻譯工具,將人類看懂的語言翻譯成機器能看懂的東西。


         
解釋型語言VS編譯型語言          
         
         


解釋型語言和編譯型語言的共同目標都是為了將我們所認識的語句(例如循環(huán)、判斷)轉成二進制代碼,再交給計算機執(zhí)行。

二者之間最明顯的區(qū)別,編譯型語言就是指在我們把程序寫完之后,把代碼完全翻譯成二進制文件,通過執(zhí)行該二進制文件來執(zhí)行程序;而解釋型語言沒有轉二進制文件的過程,而是什么時候需要,什么時候編譯。有人說,這算什么區(qū)別呢?還沒有說完,編譯型語言生成二進制文件后,那這個二進制文件就可以直接執(zhí)行,而解釋型語言需要隨時帶著這個解釋器,必須隨叫隨到。因此、產生了各種方面的差異,以下是我所理解的較為明顯的差異。


編譯型語言
解釋型語言
運行速度
快(二進制文件)
慢(邊解釋邊執(zhí)行)
可移植性(跨平臺)
差(CPU指令系統變則執(zhí)行出錯)
好(隨身帶著解釋器)
更新
重新編譯
僅解釋更新的內容
安全
好(無需提供源碼)
差(連同源碼一起交付)

         
Python解釋器          
         
         

有了上面的描述,想必知道解釋器是怎么回事了。解釋器其實也包括編譯過程,只是這個編譯過程沒有生成目標代碼。Python解釋器由編譯器和虛擬機構成,編譯器將源代碼轉換成字節(jié)碼,然后再通過Python虛擬機來逐行執(zhí)行這些字節(jié)碼。

python程序執(zhí)行過程:

1、執(zhí)行 .py 文件,就會啟動python解釋器

2、編譯器將源文件解釋成字節(jié)碼

3、虛擬機將字節(jié)碼轉化成機器語言,與操作系統交互

4、程序運行結束后,將字節(jié)碼存到pyc文件,便于后續(xù)直接執(zhí)行

python解釋器有很多種:

CPython:C語言開發(fā),使用最廣,默認的解釋器

IPython:基于CPython之上的交互式解釋器

PyPy:采用JIT技術,對python代碼進行動態(tài)編譯,追求執(zhí)行速度

Jython:運行在Java平臺上的解釋器,可以直接編譯成Java字節(jié)碼執(zhí)行

IronPython:同理Jython,運行在 .Net 平臺上

關于python解釋器是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI