編譯型語言與解釋型語言有何區(qū)別?

眾所周知,計算只能識別二進(jìn)制,任何程序或軟件,最終都要經(jīng)過編譯或解釋轉(zhuǎn)換成二進(jìn)制才能被計算機(jī)識別。源代碼,源代碼就是由程序員使用各種編程語言編寫的還未經(jīng)編譯或者解釋的程序文本,編譯或解釋能把源代碼翻譯成等效的二進(jìn)制代碼,也就是CPU能夠識別的機(jī)器語言。

二進(jìn)制

編譯和解釋

編譯和解釋都是對源代碼的解釋處理方式,而由于他們的操作方法不同,所以會有不同的運(yùn)行的效果:

  • 編譯是把源代碼的每一條語句都編譯成機(jī)器語言,并最終生成二進(jìn)制文件,這樣運(yùn)行時計算機(jī)可以直接以機(jī)器語言來運(yùn)行此程序,在運(yùn)行時會有很好的性能;

  • 解釋是只有在執(zhí)行到對應(yīng)的語句時才會將源代碼一行一行的解釋成機(jī)器語言,給計算機(jī)來執(zhí)行,所以使用解釋器來執(zhí)行的語言也被稱為動態(tài)語言;

編譯和解釋

舉個現(xiàn)實中的例子,比如你現(xiàn)在想讀一本英文書,但你自己又不懂英文,然后你去找了個英文翻譯小姐姐來幫忙,翻譯小姐姐給你提供了兩種選擇:

  1. 全本翻譯:由翻譯小姐姐幫你把整本書翻譯完,完成校稿后給你一本翻譯完成的中文書,在這個過程中翻譯就會花費(fèi)較長的時間,你閱讀時就會很快、很輕松;

  2. 隨身翻譯:就是翻譯小姐姐隨時守在你身邊,你想閱讀那一句,他就給你翻譯那一句,這這種方式翻譯時很快,但對你來說,閱讀就會花費(fèi)較長的時間;

編譯型語言與解釋型語言

編譯型語言:使用編譯器來編譯執(zhí)行的編程語言,這類語言往往會花費(fèi)較長的編譯時間,但編譯完成后,會有很好的運(yùn)行性能;因此,這類語言編寫的程序每次修改都要再次經(jīng)歷一遍完整編譯過程后,修改效果才能生效,迭代時間會比解釋型語言要長。

由于要經(jīng)歷完整編譯過程,因此在程序有任何語法錯誤都能在編譯期被發(fā)現(xiàn),大大降低程序的運(yùn)行錯誤。

代表語言:C、C++

編譯型語言

解釋型語言:使用解釋器來解釋執(zhí)行的編程語言,這類語言不需要編譯,程序執(zhí)行到了,解釋器才會去解釋對應(yīng)的語句,這類語言更多的時間花費(fèi)在了運(yùn)行期間;但是這類語言編寫的程序的修改迭代不要經(jīng)歷漫長的編譯過程,效果能夠很快生效;

這類語言由于沒有經(jīng)歷編譯過程,所以即便是語法錯誤,也得等到運(yùn)行期間才會被發(fā)現(xiàn)。

代表語言:PHP、Python、Ruby

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容