型システム
type system
多くのプログラミング言語において整数 1 と 2 は違う値だが同じような操作を行うことができる。一方文字列"abc"に対して行える操作は整数に対するそれとはまた違ったものである。この意味において、値1と2は同じ分類に属するといえる。このように値を分類したものが型(type)である。 プログラミング言語によって、それぞれの値がどのような型に分類されるか、また型同士の間にどのような関係が成り立つかは異なる。これがプログラミング言語における型システムである。
型システムは、プログラムのある種の間違いを実行前や実行時に検出するのに使われる。 変数の型と値の型
C言語ではint a;のように変数の型を宣言し、宣言した型以外の値の代入はコンパイル時エラーとなる。 Rubyでは変数は型をもたず、任意の値を代入することができる。 一方C言語ではメモリ上の値は型の情報を持たず、文字列を渡すべき関数に数値の配列を渡しても実行は継続される。 Rubyではメモリ上の値が型の情報を持っており、存在しないメソッドを呼び出した場合は例外が発生する。