プログラミング言語

型のある言語とない言語

型のある言語とは、あるデータ型について定義されている操作を他のデータ型の値に対して実行できないものを指す(※http://www.acooke.org/andrew/writing/lang.html#sec-types Andrew Cooke An Introduction to Programming Languages 2006年6月30日)。例えば、"this text between the quotes" は文字列型の値である。多くの言語では、数を文字列で割る操作には意味がない。そのため、そのような操作をしようとしているプログラムは拒絶される。言語によっては、そのような意味のない操作をコンパイル時に検出し(静的型検査)、コンパイラが拒絶する。また、言語によっては実行時に検出し(動的型検査)、例外処理が呼び出されることになる。型のある言語の特殊例として、単一型言語がある。REXXSGMLといったスクリプト言語やマークアップ言語は、単一のデータ型しか扱わない(多くの場合、そのときのデータ型は文字列型である)。対照的にアセンブリ言語などの型のない言語は、任意のデータに任意の操作を実行可能であり、データは単にある長さのビット列として扱われる(※http://www.acooke.org/andrew/writing/lang.html#sec-types Andrew Cooke An Introduction to Programming Languages 2006年6月30日)。高級言語で型を持たない言語としては、BCPLForth系言語の一部などがある。型理論的に厳密な型適用をしている言語は少なく、多くの言語はそれなりの型システムを採用している(※http://www.acooke.org/andrew/writing/lang.html#sec-types Andrew Cooke An Introduction to Programming Languages 2006年6月30日)。多くの実用的な言語には、型システムを迂回または打倒するような手段が用意されている。

戻る