型システム
型システムtype system)とは、プログラミング言語においてデータ型に分類し、型を扱い、またそれらが相互作用する方式を定義する仕様及び実装である。 1つの型は共通の汎用的意味または用途を持つ値の集合1つを表現する(※抽象データ型関数型などのように実行時に値の集合として表現できない型もある)。型システムは言語ごとに非常に異なっているが、おそらく最も大きな違いはその文法および実行時における動作においてである。コンパイラでは値の記憶効率や値に対する操作アルゴリズムの選定を最適化するために静的型が用いられることがある。例として多くのCコンパイラではfloat型を単精度浮動小数点数のためのIEEE標準にしたがって32ビットで表現する。よって加算、乗算等に各浮動小数点数演算が用いられる。型の強制の度合いや評価方法は言語の型付けtyping)に影響する。さらに、ポリモーフィズムのある言語では一つの演算がいくつかの具象アルゴリズムに対応付けられる。型理論は型システムを対象とした形式的な研究であるが、実際のプログラミング言語の型システムはコンピュータ・アーキテクチャや言語設計及び処理系の実装の実用上の課題から生まれたものである。

1 基礎
2 型検査
 静的な型付けと動的な型付け
  トレードオフ
 強い型付けと弱い型付け
 型の安全性
3 ポリモーフィズムと型
 ダック・タイピング
4 明示的または暗黙的な型の宣言と型推論
5 互換性(等価性と派生型)
6 論争
7 脚注
8 参考資料
9 関連項目