型別安全 在電腦科學中一部分程式語言具備型別安全中國大陸用語習慣稱型別為类型稱資料為数据的性質這個術語在不同的社群中有不同的定義特別是正規的型別理論上的定義遠遠強過大多數的程式員的理解但對於使用型別系統的認知皆旨在避免必然的錯誤形式和不良的程式行為稱為型別錯誤 类型错误type error是错误或不期望的程序行为由不同数据类型的差别所引起适用于程序的常量变量方法函数如把整型int当作了浮点型float 型別安全可以靜態方式實施及早在編譯時期就捕捉到潛藏的錯誤或者以動態方式在執行時期關聯型別的資訊並在必要時檢測即將發生的錯誤型別安全是程式語言的性質而不是程式所自有的例如有可能以型別不安全的語言編寫出型別安全的程式在此是以程式語言為主而不討論以個人能力維護的型別安全 某個行為之所以會被程式語言歸類為型別錯誤通常是因為試圖對不適當型別的值進行運算其分類的基本原則是部分語言設計者和程式員的看法認為如果所有運算不引起程式瓦解安全上的瑕疵或其它明顯故障即為合理的而不視之為一個錯誤其他人則認為所有違背程式員意圖的就是錯誤的而且應該標上不安全在靜態型別系統中型別安全通常包含一個保證所有運算式最終的值都是合理的靜態型別成員比子型別和多態性所要求的還要更加精確細微 型別安全近似於所謂的記憶體安全就是限制從記憶體的某處將任意的位元組合複製到另一處的能力例如某個語言的實作具有若干型別 t displaystyle t 假如存在若干適當長度的位元且其不為 t displaystyle t 的正統成員若該語言允許把那些資料複製到 t displaystyle t 型別的變數那個語言就不是型別安全的因為這些運算可將非 t displaystyle t 型別的值指派給該變數反過來說若該語言型別不安全的程度最高只到允許將任意整數用作為指標顯然它就不是記憶體安全的 大部分的靜態型別語言都提供了一定程度的型別安全而且其嚴格性更勝於記憶體的安全性因其型別系統強迫程式員以適當的抽象資料型別定義來使用即使對記憶體安全或任何可能的災難而言並不需如此嚴格的要求