序:
我們都知道計(jì)算機(jī)的cpu是不認(rèn)識(shí)你寫的語(yǔ)言的,什么for循環(huán),什么var,什么int等這些都是為了給coder看的,那么計(jì)算機(jī)看什么呢?0101 這些二進(jìn)制嗎?,對(duì)的,最后需要翻譯幫我們的功能代碼翻譯成機(jī)器語(yǔ)言。那么問(wèn)題來(lái)了,什么時(shí)候翻譯呢?
解釋型語(yǔ)言
---邊翻譯邊運(yùn)行
程序不需要編譯,程序在運(yùn)行時(shí)才翻譯成機(jī)器語(yǔ)言,每執(zhí) 行一次都要翻譯一次。因此效率比較低。在運(yùn)行程序的時(shí)候才翻譯,專門有一個(gè)解釋器去進(jìn)行翻譯,每個(gè)語(yǔ)句都是執(zhí)行的時(shí)候才翻譯。效率比較低,依賴解釋器,跨平臺(tái)性好。
編譯型語(yǔ)言
---在運(yùn)行前已經(jīng)翻譯好了整個(gè)程序
程序在執(zhí)行之前需要一個(gè)專門的編譯過(guò)程,把程序編譯成 為機(jī)器語(yǔ)言的文件,運(yùn)行時(shí)不需要重新翻譯,直接使用編譯的結(jié)果就行了。程序執(zhí)行效率高,依賴編譯器,跨平臺(tái)性差些。如C、C++等
兩者利弊
編譯型,程序執(zhí)行速度快,同等條件下對(duì)系統(tǒng)要求較低,因此像開(kāi)發(fā)操作系統(tǒng)、大型應(yīng)用程序、數(shù)據(jù)庫(kù)系統(tǒng)等時(shí)都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語(yǔ)言,而一些網(wǎng)頁(yè)腳本、服務(wù)器腳本及輔助開(kāi)發(fā)接口這樣的對(duì)速度要求不高、對(duì)不同系統(tǒng)平臺(tái)間的兼容性有一定要求的程序則通常使用解釋性語(yǔ)言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。