データ型
関数の実引数/返値として利用できる型か否か(cf. 第一級オブジェクト)
また処理系の実装の側からの観点が強い分類だが、レジスタなどのワードに値が直接収まる型と、ワードにはポインタが入り、ポインタの先に実際の値がある型、といったような分類もある。言語処理系実装の論文などで、前者についてimmediate(即値)という表現が見られるかもしれない。ポインタ自身に型などといったような情報を含ませることもある(en:Tagged pointer)。
なおJavaでは、Javaにおけるクラスのインスタンスである(あらゆる)オブジェクトについて、その型は「参照型」であり、intなどそれ以外の限られた全ての型は「プリミティブ型」である。ユーザが定義できるのは、型を定義できるというよりも、クラスを定義できると表現するのが正確ではないかと思われる。
以下に代表的なデータ型を列挙する。
関数の返り値や引数などで、対応する値が「ない」ことを示すための型。void型との違いは、void型の値(オブジェクト)が存在しないのに対し、ユニット型にはユニット型の値が存在することである。
配列型、関数型、ポインタ型は、たいていの場合、それぞれ「~型の配列」、「...型を引数に取り~型を返す関数」、「~型へのポインタ」といったような型である。いくつかの良く出来ている言語には、総称型など、そういった型を一般的に扱う仕組みがある。いくつかのそうでない言語では、アドホックにそういった派生型を作ることができるものがある。