您好,登錄后才能下訂單哦!
這篇文章給大家介紹python解釋器是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
從計算機編程語言說起,它主要分為三類:機器語言、匯編語言、高級語言。
機器語言是一種計算機可以直接識別并執(zhí)行的二進制指令集。由于其可以直接交給CPU執(zhí)行,所以是最快的,但是它需要我們記住每一個指令的代碼與對應的動作,想想我們寫代碼的時候是操作一串串的01序列,難度得有多大。
為了克服機器語言的缺點,人們就用一些助記符來代替機器碼,也就是使用一些與實際意義相近的縮略詞來代替動作,例如ADD、SUB、MOV等,這就有了很大的進步,可以方便的編寫,但是它仍然是對機器進行操作的,相較于高級程序語言更接近于底層,所以匯編語言是低級語言。
不論是機器語言還是匯編語言都是面向硬件的操作,它們對于機器是依賴的,不同的設備對應的編寫方式可能不同。然而,高級語言是面向用戶的語言,我們只要編寫好程序內容,通過編譯或者解釋程序,就可以對機器進行操作。這里提到的編譯或者解釋程序就是一個翻譯工具,將人類看懂的語言翻譯成機器能看懂的東西。
解釋型語言和編譯型語言的共同目標都是為了將我們所認識的語句(例如循環(huán)、判斷)轉成二進制代碼,再交給計算機執(zhí)行。
二者之間最明顯的區(qū)別,編譯型語言就是指在我們把程序寫完之后,把代碼完全翻譯成二進制文件,通過執(zhí)行該二進制文件來執(zhí)行程序;而解釋型語言沒有轉二進制文件的過程,而是什么時候需要,什么時候編譯。有人說,這算什么區(qū)別呢?還沒有說完,編譯型語言生成二進制文件后,那這個二進制文件就可以直接執(zhí)行,而解釋型語言需要隨時帶著這個解釋器,必須隨叫隨到。因此、產生了各種方面的差異,以下是我所理解的較為明顯的差異。
編譯型語言 | 解釋型語言 | |
運行速度 | 快(二進制文件) | 慢(邊解釋邊執(zhí)行) |
可移植性(跨平臺) | 差(CPU指令系統變則執(zhí)行出錯) | 好(隨身帶著解釋器) |
更新 | 重新編譯 | 僅解釋更新的內容 |
安全 | 好(無需提供源碼) | 差(連同源碼一起交付) |
有了上面的描述,想必知道解釋器是怎么回事了。解釋器其實也包括編譯過程,只是這個編譯過程沒有生成目標代碼。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解釋器是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。