您好,登錄后才能下訂單哦!
這篇文章主要介紹了C語(yǔ)言、Java、JavaScript的編譯運(yùn)行方式是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
以 C 語(yǔ)言為例,我們要用 C 語(yǔ)言寫(xiě)一段程序,需要先用 C 語(yǔ)言寫(xiě)成 cpp 文件,然后使用編譯器將其編譯成可執(zhí)行文件??蓤?zhí)行文件由二進(jìn)制的機(jī)器碼組成,但是不同機(jī)器的CPU不一樣(決定了機(jī)器碼的不同),系統(tǒng)也不一樣(決定了可執(zhí)行文件格式的不同),所以它們編譯出來(lái)的二進(jìn)制文件也是不一樣的。比如 Windows 編譯出來(lái)的是 obj,lib,dll,exe
這樣的文件,而 Linux 編譯出來(lái)的是 .o,.a,.so
這樣的文件。它們之間并不能通用。所以一份源代碼要在不同的電腦上運(yùn)行需要重新編譯才能得到對(duì)應(yīng)的可執(zhí)行文件。
Java 和 C 語(yǔ)言不同,開(kāi)發(fā)者用 Java 寫(xiě)成 java 文件,使用 Java 編譯器編譯后可以得到 java 的 class 文件(這種文件又叫做 Java 字節(jié)碼文件,字節(jié)碼文件類(lèi)似于機(jī)器碼,但機(jī)器碼直接在 CPU 上運(yùn)行,而字節(jié)碼在 Java 虛擬機(jī)上運(yùn)行)。然后將 class 文件放在相應(yīng)系統(tǒng)的虛擬機(jī)上進(jìn)行運(yùn)行。不同的電腦雖然操作系統(tǒng)不同,CPU 也不同,但是它們安裝的 Java 虛擬機(jī)為 Java 代碼提供了統(tǒng)一的接口。只要目標(biāo)機(jī)器可以安裝 Java 虛擬機(jī),Java 的 class 文件就可以在目標(biāo)機(jī)器上運(yùn)行。
JavaScript 與 Java 不同,Java 需要將源代碼編譯后再放進(jìn) Java 虛擬機(jī)運(yùn)行,而 JavaScript 直接將源代碼放進(jìn) JavaScript 解釋器運(yùn)行。這樣的方式也讓 JavaScript 的可移植性變得十分強(qiáng)大。不過(guò)因?yàn)?JavaScript 沒(méi)有沒(méi)有經(jīng)歷過(guò)編譯,所以在運(yùn)行 JavaScript 代碼的時(shí)候解釋器要承擔(dān)額外的工作而導(dǎo)致效率變低。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C語(yǔ)言、Java、JavaScript的編譯運(yùn)行方式是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(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)容。