摘要:編譯型語言把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。所以可是說即是編譯型的,也是解釋型,但是假如非要?dú)w類的話,從概念上的定義,恐怕應(yīng)該歸到解釋型的語言中。編譯型的語言包括解釋型的語言包括
轉(zhuǎn)載自網(wǎng)絡(luò)
Java這個語言很神奇:
你可以說它是編譯型的。因?yàn)樗械腏ava代碼都是要編譯的,.java不經(jīng)過編譯就什么用都沒有。
你可以說它是解釋型的。因?yàn)閖ava代碼編譯后不能直接運(yùn)行,它是解釋運(yùn)行在JVM上的,所以它是解釋運(yùn)行的,那也就算是解釋的了。
但是,現(xiàn)在的JVM為了效率,都有一些JIT優(yōu)化。它又會把.class的二進(jìn)制代碼編譯為本地的代碼直接運(yùn)行,所以,又是編譯的。
像C、C++ 他們經(jīng)過一次編譯之后直接可以編譯成操作系統(tǒng)了解的類型,可以直接執(zhí)行的 所以他們是編譯型的語言。沒有經(jīng)過第二次的處理 而Java不一樣他首先由編譯器編譯成.class類型的文件,這個是java自己類型的文件 然后在通過虛擬機(jī)(JVM)從.class文件中讀一行解釋執(zhí)行一行,所以他是解釋型的語言,而由于java對于多種不同的操作系統(tǒng)有不同的JVM所以 Java實(shí)現(xiàn)了真正意義上的跨平臺!
請觀看下面兩張圖 了解一下Java的虛擬機(jī)機(jī)制:
Java的編譯-->解釋-->執(zhí)行過程
Java的虛擬機(jī)
今天聽到同事在討論java是哪種類型的語言(編譯型、解釋型),以前稍微有些接觸,但是概念比較模糊,為了不至于讓別人的思想左右自己,所以查了些資料,找到了很多熱心網(wǎng)友給出的答案,終于有些明白。這里先給出編譯型語言和解釋型語言的定義和區(qū)別。
編譯型語言:把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。然后,可直接運(yùn)行這個程序。
解釋型語言:把做好的源程序翻譯一句,然后執(zhí)行一句,直至結(jié)束!
編譯型語言,執(zhí)行速度快、效率高;依靠編譯器、跨平臺性差些。
解釋型語言,執(zhí)行速度慢、效率低;依靠解釋器、跨平臺性好。
個人認(rèn)為,java是解釋型的語言,因?yàn)殡m然java也需要編譯,編譯成.class文件,但是并不是機(jī)器可以識別的語言,而是字節(jié)碼,最終還是需要 jvm的解釋,才能在各個平臺執(zhí)行,這同時也是java跨平臺的原因。所以可是說java即是編譯型的,也是解釋型,但是假如非要?dú)w類的話,從概念上的定義,恐怕java應(yīng)該歸到解釋型的語言中。
編譯型的語言包括:C、C++、Delphi、Pascal、Fortran
解釋型的語言包括:Java、Basic、javascript
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/73197.html
摘要:最后給出編譯型語言和解釋型語言的定義。定義編譯型語言把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。解釋型語言把做好的源程序翻譯一句,然后執(zhí)行一句,直至結(jié)束特點(diǎn)編譯型語言,執(zhí)行速度快效率高依靠編譯器跨平臺性差。 有人說Java是編譯型的。因?yàn)樗械腏ava代碼都是要編譯的,.java不經(jīng)過編譯就無法執(zhí)行。 也有人說Java是解釋型的。因?yàn)閖ava代碼編譯后不能直接運(yùn)行,它是解釋運(yùn)行在J...
摘要:編譯型語言解釋型語言主要問題是沒有團(tuán)體或者組織規(guī)定這些例如編譯型語言和解釋型語言的定義以及如何劃分。下面是處理聲明語句的過程一旦引擎進(jìn)入一個執(zhí)行具體代碼的執(zhí)行上下文函數(shù),它就對代碼進(jìn)行詞法分析或者分詞。這是解釋型語言需要的。 幾天前一個剛接觸 JavaScript 的朋友問我 JavaScript 是編譯型語言還是解釋型語言。從一個初學(xué)者那里聽到這樣的問題讓我有些驚訝,因?yàn)樗谐鯇W(xué)者都...
摘要:可以脫離語言環(huán)境獨(dú)立運(yùn)行就像一本英文書,我找一個翻譯,給他點(diǎn)時間,把英文書翻譯成中文的,這就是編譯型語言解釋型語言有良好的平臺兼容性,在任何環(huán)境中都可以運(yùn)行,前提是安裝了解釋器虛擬機(jī)。就像還是一本英文書,我看一句讓他給我解釋一句。 寫在前面 隨著大數(shù)據(jù)、人工智能這類詞匯撲向我們,python這個早在1989就已經(jīng)出現(xiàn)的語言終于高調(diào)回歸,為了更好的學(xué)習(xí)python 我們先來了解下它的前世...
摘要:準(zhǔn)確的理解,是編譯型語言,源代碼整個編譯成字節(jié)碼,字節(jié)碼,是解釋型語言。是一個非常靈活的語言,支持命令式和函數(shù)式編程。編譯型語言通常會用做配置文件,因?yàn)槲覀兺ǔ2粫木幾g后的字節(jié)碼。 編程語言按各種方法可以分為各種類型,現(xiàn)在讓我們來看看JS屬于什么類型語言 解釋型語言 按編譯執(zhí)行過程,可以分為編譯型語言和解釋型語言。比如 c 語言,必須先經(jīng)過編譯生成目標(biāo)文件,然后鏈接各個目標(biāo)文件和庫...
閱讀 1264·2021-09-27 13:35
閱讀 2563·2021-09-06 15:12
閱讀 3380·2019-08-30 15:55
閱讀 2828·2019-08-30 15:43
閱讀 431·2019-08-29 16:42
閱讀 3446·2019-08-29 15:39
閱讀 3062·2019-08-29 12:28
閱讀 1239·2019-08-29 11:11