プリミティブ型
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プリミティブ型(プリミティブがた)とは、計算機科学において、プログラミング言語によって提供されるデータ型であり基本的な要素である。対する語は複合型という。言語やその実装に依存して、プリミティブ型がコンピュータメモリ上のオブジェクトと一対一対応のときもあれば、そうでないときもある。組み込み型もしくは基本型とも呼ぶ。プリミティブ型の種類は、使用されているプログラミング言語に依存する。例えばC言語では、文字列は複合データ型だが、BASICやその派生言語ではプリミティブ型である。
代表的なプリミティブ型を一部列挙:
- 文字型 (
character,char); - 整数型 (
integer,int,short,long,byte)(各種の精度のものがある); - 浮動小数点数 (
float,double,real,double precision); - 固定小数点数 (
fixed) (各種の固定精度やスケール指定可能なものがある)。 - 真値と偽値をもつブーリアン型(ブール代数)。
- 参照型 (ポインタまたはハンドルとも言われる)、オブジェクトを参照する小さな値で、そのオブジェクト自身よりも大きな容量のオブジェクトも扱える。
プリミティブ型にもなりうる、より高度な型を一部列挙:
- ML, Pythonのタプル
- LISPのリンクドリスト
- Fortran, C (C99), Pythonの複素数
- LISPの有理数
- ファーストクラス関数、クロージャ、LISPやMLのような関数型言語の再帰
プリミティブ型が最も高速な演算を行える言語構成要素である場合が多い。例として整数の加算は、単一マシン命令として演算され、プロセッサによっては単一マシン命令で文字列を処理する具体的な命令を提供している。特に、C言語標準では「plainなint型オブジェクトのサイズは実行環境のアーキテクチャに依存する」とされている。これは、32ビットアーキテクチャではint型が32ビットになってしまうことを意味する。
大半の言語はプリミティブ型の振る舞いや機能がプログラムによって変更できない。例外として、Smalltalkではプログラムによって拡張されたプリミティブデータ型を許可しており、それらの型の演算命令を追加することもでき、場合によっては言語固有の演算命令を再定義することもできる。