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

1.1?編譯和解釋
編譯和解釋都是對源代碼的解釋處理方式,而由于他們的操作方法不同,所以會(huì)有不同的運(yùn)行的效果:
編譯是把源代碼的每一條語句都編譯成機(jī)器語言,并最終生成二進(jìn)制文件,這樣運(yùn)行時(shí)計(jì)算機(jī)可以直接以機(jī)器語言來運(yùn)行此程序,在運(yùn)行時(shí)會(huì)有很好的性能;
解釋是只有在執(zhí)行到對應(yīng)的語句時(shí)才會(huì)將源代碼一行一行的解釋成機(jī)器語言,給計(jì)算機(jī)來執(zhí)行,所以使用解釋器來執(zhí)行的語言也被稱為動(dòng)態(tài)語言;

舉個(gè)現(xiàn)實(shí)中的例子,比如你現(xiàn)在想讀一本英文書,但你自己又不懂英文,然后你去找了個(gè)英文翻譯小姐姐來幫忙,翻譯小姐姐給你提供了兩種選擇:
全本翻譯:由翻譯小姐姐幫你把整本書翻譯完,完成校稿后給你一本翻譯完成的中文書,在這個(gè)過程中翻譯就會(huì)花費(fèi)較長的時(shí)間,你閱讀時(shí)就會(huì)很快、很輕松;
隨身翻譯:就是翻譯小姐姐隨時(shí)守在你身邊,你想閱讀那一句,他就給你翻譯那一句,這這種方式翻譯時(shí)很快,但對你來說,閱讀就會(huì)花費(fèi)較長的時(shí)間;
1.2?編譯型語言與解釋型語言
編譯型語言:使用編譯器來編譯執(zhí)行的編程語言,這類語言往往會(huì)花費(fèi)較長的編譯時(shí)間,但編譯完成后,會(huì)有很好的運(yùn)行性能;因此,這類語言編寫的程序每次修改都要再次經(jīng)歷一遍完整編譯過程后,修改效果才能生效,迭代時(shí)間會(huì)比解釋型語言要長。
由于要經(jīng)歷完整編譯過程,因此在程序有任何語法錯(cuò)誤都能在編譯期被發(fā)現(xiàn),大大降低程序的運(yùn)行錯(cuò)誤。
代表語言:C、C++

解釋型語言:使用解釋器來解釋執(zhí)行的編程語言,這類語言不需要編譯,程序執(zhí)行到了,解釋器才會(huì)去解釋對應(yīng)的語句,這類語言更多的時(shí)間花費(fèi)在了運(yùn)行期間;但是這類語言編寫的程序的修改迭代不要經(jīng)歷漫長的編譯過程,效果能夠很快生效;
這類語言由于沒有經(jīng)歷編譯過程,所以即便是語法錯(cuò)誤,也得等到運(yùn)行期間才會(huì)被發(fā)現(xiàn)。
代表語言:PHP、Python、Ruby

文章來源于網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。