您好,登錄后才能下訂單哦!
高級(jí)語(yǔ)言不能直接被機(jī)器所理解執(zhí)行,所以都需要一個(gè)翻譯的階段,解釋型語(yǔ)言用到的是解釋器,編譯型語(yǔ)言用到的是編譯器。
編譯型語(yǔ)言通常的執(zhí)行過(guò)程是:源代碼——預(yù)處理器——編譯器——目標(biāo)代碼——鏈接器——可執(zhí)行程序。
某種意義上來(lái)說(shuō)預(yù)處理事實(shí)上是一個(gè)附加的功能,C,PHP,都可以添加這種功能,其中,預(yù)處理指令多為頭文件包含,宏定義等等。因?yàn)楹甓x的核心說(shuō)白了就是一個(gè)字“換”,所以預(yù)處理就是提供一個(gè)程序執(zhí)行的環(huán)境。
編譯器——目標(biāo)代碼就是把高級(jí)程序語(yǔ)言轉(zhuǎn)換成機(jī)器可以理解執(zhí)行的機(jī)器語(yǔ)言。
鏈接器的功能開(kāi)始理解前要先了解一點(diǎn)。頭文件在預(yù)處理過(guò)程中被編譯成一個(gè)個(gè)單獨(dú)的文件,也就是庫(kù)文件。而程序是另外的文件,并不包含在庫(kù)文件里。所以這就需要一個(gè)“膠水”把程序和庫(kù)連接起來(lái)形成一個(gè)可執(zhí)行文件(Windows是EXE)。這就是鏈接器的作用。
解釋器理解就簡(jiǎn)單了,把程序一行行的的理解,執(zhí)行。首先讀一行代碼,然后執(zhí)行這一行代碼的意思,接下來(lái)讀下一行代碼,執(zhí)行次行代碼。一次循環(huán)往復(fù)。
編譯器則是讀入所有代碼,打包成可執(zhí)行文件,執(zhí)行。由于我們運(yùn)行的一般都為編譯過(guò)后的可執(zhí)行文件,也就是執(zhí)行的是機(jī)器語(yǔ)言(而且是IDE優(yōu)化后的),所以運(yùn)行速度要比解釋型語(yǔ)言快。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。