學(xué)員注冊(cè)/登錄

《奧鵬教育隱私協(xié)議》,

且認(rèn)同奧鵬教育以電話、短信或其他形式與您取得聯(lián)系

模態(tài)層

解釋型語言和編譯型語言的區(qū)別

567         2024-02-04    奧鵬教育

解釋型語言和編譯型語言的區(qū)別:

1.從運(yùn)行效果上來看。編譯型語言要等全部寫完后通過編譯器去生成一個(gè)類似*.exe的二進(jìn)制文件,然后雙擊這個(gè)文件才可以看到效果。

而解釋型語言并沒生成*.exe文件,而是直接生成效果,這就是我之前提到的的那個(gè)C語言和MATLAB的例子。

2.運(yùn)行的時(shí)候是否需要編譯器的伴隨。編譯型語言運(yùn)行的是最終生成的二進(jìn)制代碼,所以不需要編譯器伴隨。

而解釋型語言則一邊解釋一邊運(yùn)行,所以運(yùn)行的時(shí)候很可能還有部分代碼沒有解釋好,所以需要編譯器伴隨(解釋型語言把該工具叫做解釋器)。

有人會(huì)問編譯器(解釋器)在哪里呢?

舉個(gè)例子,網(wǎng)頁的解釋器就在瀏覽器中,所以要看HTML的效果必須用瀏覽器或者有編譯工具在內(nèi)的其他工具打開,比如:模擬瀏覽器的工具。

3.執(zhí)行的速度對(duì)比。編譯型語言運(yùn)行的已經(jīng)是完全的二進(jìn)制內(nèi)容,運(yùn)行起來十分干凈利落,所以速度很快。

而解釋型語言運(yùn)行的不一定是完全的二進(jìn)制內(nèi)容,因?yàn)樗且贿吔忉尦啥M(jìn)制一邊運(yùn)行。

所以當(dāng)它執(zhí)行看出效果的時(shí),程序后半部分還不一定解釋成二進(jìn)制,它就像一個(gè)“三心二意”的男人。所以像那種三心二意的男人說話有時(shí)吞吞吐吐的,速度沒有前者快,但是CPU的運(yùn)行速度如果很快,可能看不出來,只是偶爾會(huì)看到“有點(diǎn)卡”的效果。

原因就是它一邊解釋一邊運(yùn)行,你看到效果的后面可能還有一少半的代碼沒解釋成二進(jìn)制,所以看到的效果會(huì)是殘缺的。這就是為什么有時(shí)候查看網(wǎng)頁,先是出現(xiàn)一堆沒有布局的文字,然后才出現(xiàn)那種布局好的效果。

4.可移植性對(duì)比。編譯型語言是運(yùn)行二進(jìn)制內(nèi)容,所以一旦CPU指令系統(tǒng)改變,那么之前的二進(jìn)制文件可能運(yùn)行不了。比如,如果到其他硬件平臺(tái)上運(yùn)行,就可能出現(xiàn)錯(cuò)誤,就需要根據(jù)該平臺(tái)重新編譯出新的二進(jìn)制文件。所以可移植性、平臺(tái)兼容性比價(jià)差。

而解釋型語言則沒有弄成什么二進(jìn)制內(nèi)容,而是在需要的時(shí)候才開始編譯、運(yùn)行。所以它自然具有可移植性,即在任何平臺(tái)都可以馬上運(yùn)行起來。

要注意的是它的解釋工具如:瀏覽器,本身就是編譯型語言解釋出來的二進(jìn)制代碼,所以瀏覽器本身不具備可移植性,是需要針對(duì)不同的平臺(tái)弄出對(duì)應(yīng)的瀏覽器最終二進(jìn)制文件的,這里可別混淆。

5.升級(jí)上對(duì)比。編譯型語言弄出來的二進(jìn)制文件若要升級(jí),自然要重新下載一個(gè)新的二進(jìn)制文件。所以重新下載、安裝、覆蓋是最大的特點(diǎn)。比如微信的升級(jí),就是要重新下載、重新安裝、重新覆蓋,等個(gè)半天而且很耗費(fèi)CPU資源,體驗(yàn)性就不大好。

而解釋型的語言只要重新寫好源代碼即可,用戶想要最新的效果,只要刷新一下即可,所以體驗(yàn)性好。比如:某網(wǎng)站平臺(tái)升級(jí)了,用戶只要重新刷新一下。

6.應(yīng)用領(lǐng)域,編譯型語言應(yīng)用領(lǐng)域通常是那些安裝軟件,例如桌面上的安裝軟件。解釋型的語言的應(yīng)用領(lǐng)域通常是互聯(lián)網(wǎng)、網(wǎng)站等那種刷新了一下就可以看到最新效果的領(lǐng)域。

解釋型語言和編譯型語言的區(qū)別.jpg

編譯型語言的特點(diǎn)是:

源代碼經(jīng)過編譯器轉(zhuǎn)換為目標(biāo)平臺(tái)的機(jī)器碼,這個(gè)過程是一次性的。

生成的可執(zhí)行文件可以在任何安裝了該語言的平臺(tái)上獨(dú)立運(yùn)行,無需再次編譯。

執(zhí)行效率相對(duì)較高,因?yàn)樗苊饬嗽谶\(yùn)行時(shí)重新編譯的過程。

需要依賴于特定的編譯器和操作系統(tǒng)。

有些編譯型語言在執(zhí)行時(shí)需要鏈接多個(gè)目標(biāo)代碼模塊,以生成最終的程序。

解釋型語言的特點(diǎn)是:

源代碼在運(yùn)行時(shí)被解釋器逐行翻譯成目標(biāo)平臺(tái)的機(jī)器碼,然后執(zhí)行。

每執(zhí)行一次就需要翻譯一次,因此效率較低。

通常不依賴于特定的編譯器或操作系統(tǒng),因?yàn)榻忉屍骺梢栽谌魏沃С衷撜Z言的平臺(tái)上游玩。

跨平臺(tái)性好,只需提供相應(yīng)的解釋器即可。

簡(jiǎn)單來說,編譯型語言在運(yùn)行前進(jìn)行了編譯,而解釋型語言則在運(yùn)行時(shí)進(jìn)行解釋。編譯型語言的程序一旦編譯成功,就可以在任何支持的平臺(tái)上運(yùn)行,而解釋型語言的程序則需要解釋器的幫助才能執(zhí)行。編譯型語言的執(zhí)行效率更高,而解釋型語言更易于跨平臺(tái)移植,盡管這會(huì)犧牲一定的執(zhí)行效率

如還有其他困惑,可在線了解有關(guān)信息>>>了解python培訓(xùn)>>>

標(biāo)簽: 編譯型語言 解釋型語言 來源:http://13qz.com/
 - 在線客服
  “ 歡迎訪問奧鵬教育官網(wǎng) ”
點(diǎn)擊選擇您要咨詢的類型發(fā)起會(huì)話
學(xué)歷提升
立即咨詢
考研輔導(dǎo)
立即咨詢
海外碩博
立即咨詢
國(guó)際教育
立即咨詢
職業(yè)技能
立即咨詢
職業(yè)證書
立即咨詢
執(zhí)業(yè)藥師
立即咨詢
老生咨詢
立即咨詢
其他問題
立即咨詢