型とは、(抽象的な)何かについて、その(抽象的な)輪郭の種類を意味する概念である。
様々な型
例えば、お菓子や工業製品を作る型というのは、その物体の原型となる輪郭である。
テレビや用紙などの大きさを表す型というのは、それについて決められた形についての大きさである。
武術や演舞における型というのは、その動作における定型である。
プログラミングにおける型というのは、記憶域におけるデータ構造も意味する。
以上のように、様々な意味を持つ。
プログラミング言語における型
プログラミング言語における型(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. |
効率
最初の型システムは、実数と整数を区別して数値計算を効率化するために導入された。
安全な言語では、実行時の型チェックを省くことで高速化するものもある。
参考文献
漢字として
- 意味
- 鋳型、基準となる形、手本、規範、という意味がある。日本語では、武道や芸事における定まった一定の様式、大まかなサイズ・種類の分別、という意味がある。
- 〔説文解字・巻十三〕には「器を鑄るの法なり」とあり、鋳型のこととある。〔段注〕によると木によるものが模、竹によるものが笵で、土によるものが型だという。
- 字形
- 形声で声符は𠛬(刑)。
- 音訓
- 音読みは、ケイ(漢音)、訓読みは、かた。
- 規格・区分
- 常用漢字であり、小学校4年で習う教育漢字である。JIS X 0213第一水準。1946年に当用漢字に採用され、1981年に常用漢字になった。
- 語彙
- 型号・型鋼・型砂・型材・型式
異体字
互換文字
関連動画
関連項目
- 9
- 0pt