型とは、(抽象的な)何かについて、その(抽象的な)輪郭の種類を意味する概念である。
例えば、お菓子や工業製品を作る型というのは、その物体の原型となる輪郭である。
テレビや用紙などの大きさを表す型というのは、それについて決められた形についての大きさである。
武術や演舞における型というのは、その動作における定型である。
プログラミングにおける型というのは、記憶域におけるデータ構造も意味する。
以上のように、様々な意味を持つ。
プログラミング言語における型(Type)とは、値を種類に応じて分類する文法上の手法である。
特に、インターフェイスを通してのみ操作可能な型を、抽象データ型 (Abstract Data Type, ADT)と呼ぶ。
形式的には、ADT は型とその型の値に対する操作の集合のペアで定義される。
ある値に対する決められた以外の操作は、型システムによって禁止されている。
抽象データ型を初めてサポートした言語はCLUであり、その後 Ada、C++、Haskellなど、多くのプログラミング言語がサポートするようになった。
プログラムを読む時に、理解を助ける。
型は、型システムによって、プログラムの安全性を保証するために使われる。
型システムとは、型を利用してプログラムにある種の振舞が存在しないことを証明するための、形式手法である。
安全であるとは、言語が言語自身の抽象化を守るものをいう。
Java は、静的(コンパイル時)に安全性がチェックされる。
例えば、non-existent method invocation が起らないかを確認し、コンパイルに通れば実行中には起らないことを保障する。
もし、non-existent method invocation が起る可能性があれば、コンパイルエラーによってプログラマに知らせる。
Python は、安全であるが、動的(実行時)に安全性がチェックされる。
C言語のように、型システムによって安全性が保障されていない(unsafe)言語も存在する。
このような言語では、たとえコンパイルに通ったとしても、segmentation violation など、プログラミング言語が規定していない挙動がありうる。
statically checked | dynamically checked | |
safe | Haskell, Java, etc. | Scheme, Python, etc. |
unsafe | C, C++, etc. |
最初の型システムは、実数と整数を区別して数値計算を効率化するために導入された。
安全な言語では、実行時の型チェックを省くことで高速化するものもある。
掲示板
掲示板に書き込みがありません。
急上昇ワード改
最終更新:2024/12/22(日) 02:00
最終更新:2024/12/22(日) 02:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。