解析型語言(腳本)與編譯型語言

腳本語言:
例如python
腳本語言是一種解釋性的語言。腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因爲腳本在執行時多了一道翻譯的過程,所以它比二進制程序執行效率要稍低一些。

編譯型語言的運行方式。需通過編譯器(compiler)將源代碼編譯成機器碼,之後才能執行的語言。一般需經過編譯(compile)、鏈接(linker)、運行。編譯是把源代碼編譯成機器碼(二進制),鏈接是把各個模塊的機器碼和依賴庫串連起來生成可執行文件。

解釋型語言的運行方式。源代碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,再由解釋器對中間代碼進行解釋運行。每個語句都是執行的時候才翻譯。(在運行程序的時候才翻譯,專門有一個解釋器去進行翻譯,每個語句都是執行的時候才翻譯。效率比較低,依賴解釋器,跨平臺性好)

python的運行過程:當程序執行時,python內部(對大多數用戶是完全隱藏的)會先將源代碼(文件中的語句)編譯成所謂字節碼(不是二進制)的形式。一般把字節碼保存爲一個以 .pyc爲擴展名的文件( .pyc就是編譯過的 .py源代碼)。一旦程序編譯成字節碼,之後的字節碼發送到通常稱爲python虛擬機(PVM)上來運行。PVM不是一個獨立的程序,不需要安裝,它是python的運行引擎,他時常表現爲python系統的一部分,並且它是實際運行腳本的組件。

精煉:
Python是用C寫的。
Python解釋器會把代碼內容讀到內存裏,通過Python解釋器翻譯成字節碼。(解析器其實包括編譯器和虛擬機)
CPU不能直接讀取字節碼,需要把字節碼轉換成機器碼。(通過虛擬機)
Python對於C來說,就多了一個字節碼轉換成機器碼的過程,所以相對會慢。但是人爲是無法感知的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章