動態語言和靜態語言
(1)動態類型語言:動態類型語言是指在運行期間纔去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。
(2)靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明所有變量的數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。
對於動態語言與靜態語言的區分,套用一句流行的話就是:Static typing when possible, dynamic typing when needed。
強類型定義語言和弱類型定義語言強類型:偏向於不容忍隱式類型轉換。譬如說haskell的int就不能變成double
弱類型:偏向於容忍隱式類型轉換。譬如說C語言的int可以變成double