編程語言類型劃分

(一)編譯型和解釋型

計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。

編譯型語言寫的程序執行之前,已經程序編譯好了,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因爲翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。

解釋性語言的程序在運行程序的時候才翻譯,邊運行邊翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

用一個例子類比下,比如一個人讀一本外語書,他可以選擇直接讀別人翻譯好的(編譯型),或者讓別人一句句讀給他聽(解釋型)。翻譯好的譯文隨時可以再讀,請別人讀每個章節都需要重新讀一次。


(二)動態語言和靜態語言

動態類型語言:在運行期間檢查數據的類型的語言。用這類語言編程,不會給變量指定類型,而是在附值時得到數據類型。

靜態類型語言:相反靜態類型語言是在運行前編譯時檢查類型。在寫代碼時,沒聲明一個變量必須指定類型。

動態類型語言如JS

function add(a,b){
return a+b;
}
add(1,2);
add('1',2);

靜態類型語言如C、C++、Java、C#等

public int add(int a,int b){
return a+b;
}

(三)強類型定義語言和弱類型定義語言

強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變量a,那麼程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言,如Java。

弱類型定義語言:數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值,如JS。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章