1. 程式人生 > >指令碼語言,動態語言,靜態語言,語言型別

指令碼語言,動態語言,靜態語言,語言型別

根據語言特性分類


update time 2019-1-3,Author:要你命三千又三千 type:學習筆記
幾種語言方式的對比

根據語言的執行方式可以分為

解釋型語言

指每次執行解釋型程式時都要由直譯器程式實時地將原始碼轉換成二進位制形式執行。
關鍵字:實現 ,原始碼轉化成二進位制,執行

編譯性語言

編譯型語言的首先將原始碼編譯生成機器語言,再由機器執行機器碼(二進位制)。像C/C++等都是編譯型語言。
關鍵字:編譯成二進位制,直接執行二進位制

根據語言的結構是否可變

動態語言

程式在執行時可以改變其結構:新的函式可以被引進,已有的函式可以被刪除等在結構上的變化,型別的檢查是在執行時做的。

概念區分

動態型別語言

就是型別的檢查是在執行時做的,比如如下程式碼是不是合法的要到執行時才判斷

靜態型別語言

靜態型別語言的型別判斷是在執行前判斷(如編譯階段)。

優缺點對比

靜態型別語言

優點在於其結構非常規範,便於除錯,方便型別安全;

缺點是為此需要寫更多的型別相關程式碼,導致不便於閱讀、不清晰明瞭

動態型別語言

優點在於方便閱讀,不需要寫非常多的型別相關的程式碼;

缺點:自然就是不方便除錯,命名不規範時會造成讀不懂,不利於理解等。(由於型別容易混淆,不容易除錯任何型別可以互相賦值的造成的結果)

靜態語言:這個概念是相比較動態語言的特性產生的概念。

問題背景前提:
幾點解釋:
動態語言

由於結構可變,結構一般是函式(函式在語言中是有型別的),所以動態語言的函式沒有型別,函式可以賦值給函式變數。由此帶來了變數也是沒有型別的(這就是動態型別:型別是不是合法的要到執行時才判斷的)也即導致執行時最好採用解釋性執行方式

靜態語言

結構固定,所以執行要求快,所以人們一般採用編譯式執行,直接執行二進位制程式碼,採用靜態型別
注:動態型別是語言的特性,動態型別語言指的是型別特性。

指令碼語言:即擴建語言,是為了縮短傳統的編寫-編譯-連結-執行(edit-compile-link-run)過程而建立的計算機程式語言。

定義解釋

根據語言建立的要求,縮短時間所以採用 解釋性執行方式(不需要編譯了),採用動態語言可以方便程式設計(動態語言的動態型別可以簡化程式設計)。由於是解釋性語言,一句一句執行,所以確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現一定的邏輯分支形成了指令碼(指令碼是批處理檔案的延伸,是一種純文字儲存的程式,一般來說的計算機指令碼程式是確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現一定的邏輯分支等。

由於這幾個名詞都是特性名詞一般預設的含義是這樣的、
動態語言----->會採用動態型別----->採用解釋性執行;(有種語言具有以上三中優缺點)

誕生動態語言是解釋性語言,動態語言是動態型別語言。
靜態語言----->採用靜態型別----->採用編譯式執行方式(一種語言具有 以上的三種的優缺點)

牛逼的指令碼語言

指令碼語言是為了縮短傳統的方式誕生的,所以一般預設採用解釋性執行動態語言動態型別語言組合是語言命令採用解釋性一句一執行),有了(動態,解釋,動態型別)所有特性的優點和缺點

問題:人們常說指令碼語言是動態語言

是因為指令碼語言建立時的,一般採用動態結構(從結構方面講)。