福利溫馨提示
酷夏狂歡—紅包雨活動即將開啟,請做好搶紅包準備!解釋型語言和編譯型語言的區(qū)別:
1.從運行效果上來看。編譯型語言要等全部寫完后通過編譯器去生成一個類似*.exe的二進制文件,然后雙擊這個文件才可以看到效果。
而解釋型語言并沒生成*.exe文件,而是直接生成效果,這就是我之前提到的的那個C語言和MATLAB的例子。
2.運行的時候是否需要編譯器的伴隨。編譯型語言運行的是最終生成的二進制代碼,所以不需要編譯器伴隨。
而解釋型語言則一邊解釋一邊運行,所以運行的時候很可能還有部分代碼沒有解釋好,所以需要編譯器伴隨(解釋型語言把該工具叫做解釋器)。
有人會問編譯器(解釋器)在哪里呢?
舉個例子,網(wǎng)頁的解釋器就在瀏覽器中,所以要看HTML的效果必須用瀏覽器或者有編譯工具在內(nèi)的其他工具打開,比如:模擬瀏覽器的工具。
3.執(zhí)行的速度對比。編譯型語言運行的已經(jīng)是完全的二進制內(nèi)容,運行起來十分干凈利落,所以速度很快。
而解釋型語言運行的不一定是完全的二進制內(nèi)容,因為它是一邊解釋成二進制一邊運行。
所以當它執(zhí)行看出效果的時,程序后半部分還不一定解釋成二進制,它就像一個“三心二意”的男人。所以像那種三心二意的男人說話有時吞吞吐吐的,速度沒有前者快,但是CPU的運行速度如果很快,可能看不出來,只是偶爾會看到“有點卡”的效果。
原因就是它一邊解釋一邊運行,你看到效果的后面可能還有一少半的代碼沒解釋成二進制,所以看到的效果會是殘缺的。這就是為什么有時候查看網(wǎng)頁,先是出現(xiàn)一堆沒有布局的文字,然后才出現(xiàn)那種布局好的效果。
4.可移植性對比。編譯型語言是運行二進制內(nèi)容,所以一旦CPU指令系統(tǒng)改變,那么之前的二進制文件可能運行不了。比如,如果到其他硬件平臺上運行,就可能出現(xiàn)錯誤,就需要根據(jù)該平臺重新編譯出新的二進制文件。所以可移植性、平臺兼容性比價差。
而解釋型語言則沒有弄成什么二進制內(nèi)容,而是在需要的時候才開始編譯、運行。所以它自然具有可移植性,即在任何平臺都可以馬上運行起來。
要注意的是它的解釋工具如:瀏覽器,本身就是編譯型語言解釋出來的二進制代碼,所以瀏覽器本身不具備可移植性,是需要針對不同的平臺弄出對應的瀏覽器最終二進制文件的,這里可別混淆。
5.升級上對比。編譯型語言弄出來的二進制文件若要升級,自然要重新下載一個新的二進制文件。所以重新下載、安裝、覆蓋是最大的特點。比如微信的升級,就是要重新下載、重新安裝、重新覆蓋,等個半天而且很耗費CPU資源,體驗性就不大好。
而解釋型的語言只要重新寫好源代碼即可,用戶想要最新的效果,只要刷新一下即可,所以體驗性好。比如:某網(wǎng)站平臺升級了,用戶只要重新刷新一下。
6.應用領域,編譯型語言應用領域通常是那些安裝軟件,例如桌面上的安裝軟件。解釋型的語言的應用領域通常是互聯(lián)網(wǎng)、網(wǎng)站等那種刷新了一下就可以看到最新效果的領域。
編譯型語言的特點是:
源代碼經(jīng)過編譯器轉換為目標平臺的機器碼,這個過程是一次性的。
生成的可執(zhí)行文件可以在任何安裝了該語言的平臺上獨立運行,無需再次編譯。
執(zhí)行效率相對較高,因為它避免了在運行時重新編譯的過程。
需要依賴于特定的編譯器和操作系統(tǒng)。
有些編譯型語言在執(zhí)行時需要鏈接多個目標代碼模塊,以生成最終的程序。
解釋型語言的特點是:
源代碼在運行時被解釋器逐行翻譯成目標平臺的機器碼,然后執(zhí)行。
每執(zhí)行一次就需要翻譯一次,因此效率較低。
通常不依賴于特定的編譯器或操作系統(tǒng),因為解釋器可以在任何支持該語言的平臺上游玩。
跨平臺性好,只需提供相應的解釋器即可。
簡單來說,編譯型語言在運行前進行了編譯,而解釋型語言則在運行時進行解釋。編譯型語言的程序一旦編譯成功,就可以在任何支持的平臺上運行,而解釋型語言的程序則需要解釋器的幫助才能執(zhí)行。編譯型語言的執(zhí)行效率更高,而解釋型語言更易于跨平臺移植,盡管這會犧牲一定的執(zhí)行效率
如還有其他困惑,可在線了解有關信息>>>了解python培訓>>>
上一篇: Python崗位要求
下一篇: python屬于編譯型語言嗎