動态語言dynamically typed
language
例如:ecmascript(javascript)、ruby、python、vbscript、php
也叫動态類型定義語言
與靜态類型定義相反,一種在執行期間才去發現資料類型的語言,
動态語言是指程式在運作時可以改變其結構:新的函數可以被引進,已有的函數可以被删除等在結構上的變化。
動态語言的類型檢查是在運作時做的。
它的優點是友善閱讀,不需要寫非常多的類型相關的代碼;
缺點是不友善調試,命名不規範時會造成讀不懂,不利于了解等。
目前java平台下的動态語言有groovy、nice、beanshell、jython、jruby、rhino(javascript)、jacl(tcl)、bistro(smalltalk)、kawa(lisp/schema),真是越來越多了。java下這麼多的動态語言建議選擇groovy,感覺血統較為正宗,相容java的文法,java程式員學習起來較為容易,上手較快。
2. 靜态語言statically
typed
例如:c、c++、java
也叫靜态類型定義語言。即一種在編譯時,資料類型是固定的語言。大多數靜态類型定義語言強制這一點,它要求你在使用所有變量之前要聲明它們的資料類型。
在使用資料之前,我們必須首先定義資料類型,這些資料類型包括int
,float,double等等。就相當于在使用它們之前,首先要為它們配置設定好記憶體空間。
靜态類型語言的主要優點在于其結構非正常範,便于調試,友善類型安全;
缺點是為此需要寫更多的類型相關代碼,導緻不便于閱讀、不清晰明了。
3. 強類型定義語言
一種總是強制類型定義的語言。java和python是強制類型定義的。如果你有一個整數,如果不顯示地進行轉換,你不能将其視為一個字元串
4. 弱類型定義語言
一種類型可以被忽略的語言,與強類型定義相反。vbscript是弱類型定義
的。在vbscript中,可以将字元串
‘12‘ 和整數 3 進行連接配接得到字元串 ‘123‘,
然後可以把它看成整數
123,而不需要顯示轉換。
5. 腳本語言
腳本語言代表一套與系統程式設計語言不同的協定。
它們犧牲執行速度和與系統程式設計語言相關的類型長度而提供更高的程式設計創作力和軟體重用。
腳本語言更适合在聯系複雜的應用程式中進行膠着。
為了簡化連接配接元件的工作,腳本語言被設計為無類型的,腳本語言一般是面向字元的,因為字元為許多不同的事物提供了一緻的描述。
事實上,腳本語言都是動态語言,而動态語言都是解釋型語言,不管它們是不是面向對象。