概念區別 【編譯型語言與解釋型語言、動態型別語言與靜態型別語言、強型別語言與弱型別語言】
概念區別 【編譯型語言與解釋型語言、動態型別語言與靜態型別語言、強型別語言與弱型別語言】
一、編譯型語言與解釋型語言
計算機只能夠直接理解機器語言,不能夠理解高階語言,所以若想執行高階語言編寫的程式,都必須轉換成計算機語言才可以被執行,計算機語言就是機器語言,將高階語言轉換成機器語言的方式有兩種,一種是編譯,另外一種是解釋,所以高階語言也被分為編譯型語言和解釋型語言。
這兩者的主要區別在於編譯和執行的順序不同。
編譯型語言是指將源程式進行編譯後再執行,執行速度較快,會直接生成一個可以直接執行的機器語言的檔案,例如在原始檔下會生成一個exe檔案,這樣在下次執行的時候就不用編譯可以直接使用編譯結果,因為只需編譯一次,以後執行時不需要編譯,所以編譯型語言執行效率高,但其只能在特定平臺進行程式執行,一般無法移植到特定平臺。
解釋型語言是在執行期間編譯,不需要進行事先編譯,可以直接通過平臺提供的相應直譯器將原始碼解釋成機器碼並立即執行,即可執行該程式,解釋型語言每次執行都要編譯一次,因而效率較低,但是其跨平臺效能較好,程式移植較為方便,可以在不同的平臺執行。
現有的C、C++、Objective等都屬於編譯型語言,Python等屬於解釋型語言。
二、動態型別語言與靜態型別語言
動態型別語言和靜態型別語言主要是針對於資料型別的檢查,兩者對於資料型別的定義順序不同。
動態型別語言是指在執行期間進行資料型別檢查,這意味著在使用動態型別語言進行編譯的時候,不需要給變數提前指定資料型別,動態型別語言會變數第一次賦值時,自動記錄資料型別,這種語言對於資料的使用較為方便,可以在需要的時候再進行定義,較為自由。
靜態型別語言是指在編譯期間進行資料檢查,然後再進行執行,這意味著使用靜態型別語言進行編寫程式的時候,就需要宣告所有的資料型別,否則就會出錯,這種資料型別執行速度較快,較為穩定,在大型專案時,為了可控,更多選用靜態型別語言。
現有的C、C++、Java、Delphi、C#等都屬於靜態型別語言,Python、Ruby、Perl等都屬於動態型別語言。
三、強型別語言與弱型別語言
強型別語言和弱型別語言是針對於型別定義來說的,兩者關於變數的型別定義的強制性不同。
強型別語言指的是強制型別定義的語言,要求變數的使用要嚴格符合定義,所有變數都必須先定義後使用,如果一個變數被指定了某個資料型別,如果不經過強制轉換,它的資料型別則不會被改變。java、.NET、C++等都屬於強型別語言。例如被定義為int的型別資料,只有經過轉換,才可以視為其他型別。
弱型別語言指的是不強制型別定義的語言,資料型別可以被忽略,一個變數可以賦給不同的資料型別的值。vb,php等就屬於弱型別語言。
參考:強型別和弱型別語言有什麼不同
總結
編譯型語言和解釋性語言主要區別在於編譯順序的不同,動態型別語言和靜態型別語言主要區別在於對於資料型別的定義順序的不同,強型別語言和弱型別語言主要區別在於對於變數的資料型別的定義的不同。
相關文章
- 計算機語言:編譯型/解釋型、動態語言/靜態語言、強型別語言/弱型別語言計算機編譯型別
- 解釋型語言、編譯型語言 區別編譯
- Python 語言特性:編譯+解釋、動態型別語言、動態語言Python編譯型別
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- 編譯型語言與解釋型語言編譯
- 淺談強型別語言與弱型別語言,歡迎大家來點評型別
- 語言型別介紹及其Python的語言型別型別Python
- python---之編譯型語言和解釋型語言的區別Python編譯
- Python 既是解釋型語言,也是編譯型語言Python編譯
- go語言資料型別-基礎型別Go資料型別
- go語言——資料型別Go資料型別
- C語言資料型別C語言資料型別
- 強型別語言變數和資料型別的理解變數資料型別
- 讚美 void, ECMAScript 秒變靜態型別語言型別
- 計算機程式語言的分類,解釋型語言、編譯型語言、指令碼語言的關係計算機編譯指令碼
- 編譯語言、解釋語言與指令碼語言之間的區別編譯指令碼
- Go 語言型別系統詳解Go型別
- 程式語言語法:`=`表示賦值,`:`表示型別。賦值型別
- 補充:C語言列舉型別C語言型別
- C語言基礎-2、字元型別C語言字元型別
- go語言資料型別轉換Go資料型別
- C語言 列舉資料型別C語言資料型別
- C語言筆記——自定義型別C語言筆記型別
- GO語言————8.4 map 型別的切片Go型別
- 高階語言——編譯型、解釋型、混合型編譯
- 『無為則無心』Python基礎 — 2、編譯型語言和解釋型語言的區別Python編譯
- Python程式設計基礎(一)程式語言是什麼?編譯型語言和解釋型語言的區別|Python是什麼?Python程式設計編譯
- C語言-變數常量資料型別C語言變數資料型別
- 6.Go語言基本資料型別Go資料型別
- 程式語言:型別系統的本質型別
- Python語言的全部資料型別分享!Python資料型別
- GO語言————4.5 基本型別和運算子Go型別
- C語言的隱式型別轉換C語言型別
- GO語言基礎(結構+語法+型別+變數)Go型別變數
- Python是一種物件導向的動態型別語言Python物件型別
- 【R語言入門】R語言中的變數與基本資料型別R語言變數資料型別
- C語言與嵌入式C語言的區別C語言
- Python語言基礎(三):基本資料型別Python資料型別