# 作為程序開發(fā),你所需要知道的編譯型與解釋型、動態(tài)語言與靜態(tài)語言、強類型語言與弱類型語言的概念以及區(qū)別!

在各式各樣的開發(fā)過程當(dāng)中,我相信各位開發(fā)小伙伴在開發(fā)過程中并沒有太關(guān)注什么是解釋性語言和編譯性語言,什么又是動態(tài)語言和靜態(tài)語言?什么是強類型語言和弱類型語言呢?
這里小棧君為大家解釋一下


file

1. 解釋型語言和編譯型語言

    解釋型語言即是源代碼先翻譯成中間代碼,然后由解析器對代碼進行解釋和執(zhí)行,程序不需要編譯,只有在運行時才翻譯成機器語言,所以每執(zhí)行一次都需要翻譯一次。其代表語言常見的有Python,shell,JavaScript等,具有運行效率一般相對比較低,因為依賴解釋器,所以具有良好的跨平臺屬性。

編譯型語言是只需要編譯一次就可以將源代碼編譯成機器語言,后面執(zhí)行時無需再次編譯,因此其執(zhí)行效率很高,常用的代表語言有c 、c++ ,雖然具有很高的執(zhí)行效率,但比較依賴編譯器所以在跨平臺方面稍顯遜色一籌。
除此之外呢,還有的語言具有編譯性和解釋性語言的兩種特色,比如常見的java語言就是,先編譯成與平臺無關(guān)的.class的字節(jié)碼文件,然后字節(jié)碼文件既可以在windows平臺上的JVM(虛擬機)上進行解釋運行,也可以在linux上的虛擬機中解釋運行,充分結(jié)合了這兩種語言的一些特色。
那么關(guān)于動態(tài)語言和靜態(tài)語言的解釋呢?我們對于動態(tài)語言和靜態(tài)語言又稱之為動態(tài)類型語言和靜態(tài)類型語言。關(guān)于動態(tài)語言的解釋是指在程序運行期間才會去檢查程序數(shù)據(jù)類型。用一點形象的例子解釋就是假如你需要摘樹上的蘋果,你到了樹下,你需要梯子的時候你才會去檢查你是否帶了梯子。其中典型的動態(tài)語言代表有Python,Ruby等。然而靜態(tài)類型語言就恰恰相反,它的數(shù)據(jù)類型是在編譯期間檢查的。也就是說你要出發(fā)去摘蘋果的時候,在出發(fā)前你就會檢查你是否帶了梯子等工具。所以也是在寫程序的過程中需要指定相關(guān)的數(shù)據(jù)類型,其中具有代表性的語言有C/C++ 等 還有我們長期霸占排行榜老大的java。

2. 強類型定義語言和弱類型定義語言

    強類型定義語言也叫做強制類型定義語言,也就是說一開始一個變量制定某個數(shù)據(jù)類型,如果不經(jīng)過強制類型轉(zhuǎn)換的話,那么他永遠就是這個數(shù)據(jù)類型,比如說你有一個蘋果,如果你不將它強行榨成蘋果汁,那么它將永遠是一個蘋果。所以強類型定義語言屬于類型安全的語言。相對于強類型定于語言而言弱類型定義語言就是那種可以被忽略的語言定義,也就是說一個語言可以被賦予多種類型,就好比水一樣,你可以讓他成為長方形或是正方形。相比于強類型在執(zhí)行速度方面可能比弱類型定義語言上略顯遜色,但是數(shù)據(jù)類型的嚴謹方面強類型語言肯定是更能夠避免許多錯誤的。

當(dāng)然計算的語言和類型也是隨著時代的發(fā)展開始初現(xiàn)端倪,嶄露頭角。這里簡單的為大家科普一下關(guān)于計算機語言的發(fā)展史,計算機語言大致歸為三個階段即最原始的階段,計算機興起時當(dāng)時的計算機語言匱乏,出現(xiàn)的類似于C/C++語言,在這一方面主要是注重性能方面。在上個世紀90年代,特別是奔騰處理器的出現(xiàn)應(yīng)該是將計算機編程語言帶入了一個新的階段也就是發(fā)展階段,在這個年代涌現(xiàn)出不少的動態(tài)編程語言,例如lua、Python、JavaScript等 當(dāng)然也少不了編程語言排行榜老大java的身影。再后來進入2010年后,編程語言進入了躍進階段,尤其是關(guān)于智能設(shè)備以及云服務(wù),云計算的領(lǐng)域中,之前的語言漸漸難以滿足企業(yè)發(fā)展的需求,在越來越大規(guī)模的同時,也對于計算機安全領(lǐng)域越來越看中,所以在環(huán)境的催生下,誕生了不少的新秀,這里就有諸如golang、swift、rust等綻放出新時代的光芒。也是算是時代發(fā)展的產(chǎn)物,不同的語言在不同的時期中綻放出不同的色彩。
本公眾號的初衷就是全面講解關(guān)于java、go、Python、區(qū)塊鏈、人工智能、微服務(wù)等知識點,由淺入深、循序漸進的給大家分享關(guān)于這些語言中的基礎(chǔ)知識、實戰(zhàn)難題和面試的題的解析。讓大家每天花3分鐘的時間能夠收獲到新的知識,亦或是溫故知新讓自己的技能更上一個臺階。微信搜索公眾號“IT干貨?!?,這里最新知識和干貨定期與你不見不散。我們之間的距離就差一個搜索和關(guān)注。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容