動態(tài)語言與靜態(tài)語言

動態(tài)語言和靜態(tài)語言

轉自http://www.cnblogs.com/icycore/archive/2012/02/24/2367016.html

通常我們所說的動態(tài)語言、靜態(tài)語言是指動態(tài)類型語言和靜態(tài)類型語言。

(1)動態(tài)類型語言:動態(tài)類型語言是指在運行期間才去做數據類型檢查的語言,也就是說,在用動態(tài)類型的語言編程時,永遠也不用給任何變量指定數據類 型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態(tài)類型語言,其他的各種腳本語言如 VBScript也多少屬于動態(tài)類型語言。

(2)靜態(tài)類型語言:靜態(tài)類型語言與動態(tài)類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明所有變量的數據類型,C/C++是靜態(tài)類型語言的典型代表,其他的靜態(tài)類型語言還有C#、JAVA等。

對于動態(tài)語言與靜態(tài)語言的區(qū)分,套用一句流行的話就是:Static typing when possible, dynamic typing when needed。

強類型定義語言和弱類型定義語言

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

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

強類型定義語言在速度上可能略遜色于弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。另外,“這門語言是不是動態(tài)語言”與“這門語言是否類型安全”之間是完全沒有聯系的!

例如:Python是動態(tài)語言,是強類型定義語言(類型安全的語言); VBScript是動態(tài)語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態(tài)語言,是強類型定義語言(類型安全的語言)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容