プリミティブ型

プリミティブ型またはプリミティブデータ型（）は、データ型の分類用語であり、データ型の中で最も基本的なものを指している。基本データ型（）とも言われる。プログラミング言語の仕様に組み込まれる形で標準的に用意されていることから、言語によっては組み込み型（）と呼ばれることもある。直訳して原始型と呼ばれることもある。
対義的な分類用語は、（）である。コンポジット型、コンポジットデータ型、あるいは複合型とも呼ばれる。複合データ型は、プリミティブ型および複合データ型の構造的または再帰的な組み合わせ（コンポジション）で形成されるデータ型である。なお、「コンポジットデータ型」という用語は、PL/SQLにおける「スカラーデータ型」の対義語としても用いられている。
概要.
や理論計算機科学における代数的データ型の視点では、「そのデータ型の定義の中に構成要素として自身あるいは他のデータ型を含まない型」がプリミティブ型である。
本記事における以降の説明は、上述の理論的な分類に従ったものではなく、プログラミング言語ごとに規定されている基本的な型について述べている。
代表的なプリミティブ型を一部列挙:
ポインタ型や参照型では、それら自身よりも大きなサイズのオブジェクトを指し示すこともできる。ハンドル型と呼ばれることもあるが、内部的にはポインタあるいは参照と等価であることが多い。
、より高度な型を一部列挙:
プリミティブ型が最も高速な演算を行える言語構成要素である場合が多い。例として整数の加算は、単一マシン命令として演算され、プロセッサによっては単一マシン命令で文字列を処理する具体的な命令を提供している。特に、C言語標準では「plainなint型オブジェクトのサイズは実行環境のアーキテクチャに依存する」とされている。これは、32ビットアーキテクチャではint型が32ビットになりえることを意味する。
Smalltalkではプログラムによって拡張されたプリミティブデータ型を許可しており、それらの型の演算命令を追加することもでき、場合によっては言語固有の演算命令を再定義することもできる。
Javaのプリミティブ型.
Javaでは以下の型をプリミティブデータ型として規定している。
Javaのプリミティブ型はオブジェクトではないため、そのままでは配列以外のコレクションに格納することができない。プリミティブ型をラップしてオブジェクトとして扱えるようにするため、各プリミティブ型にはプリミティブラッパークラスが用意されている。
.NETのCLRプリミティブ型.
.NET Framework/.NET Coreの共通言語ランタイム (CLR/CoreCLR) では、codice_16プロパティによって、型がCLRプリミティブ型であるかどうかを判定できる。各.NET言語の組み込みの値型は必ずしもCLRプリミティブ型ではないが、CLRプリミティブ型はすべて値型である。
例えば、十進浮動小数点数型codice_17は値型（構造体）であり、C#の組み込み型codice_18でもあるが、CLRプリミティブ型ではない。ポインタまたはハンドルを表すときに使用されるプラットフォーム固有の型codice_19は値型であり、CLRプリミティブ型でもあるが、C#の組み込み型ではない（C# 9.0以降はcodice_20として組み込み型となった）。
CLRプリミティブ型は共通中間言語 (CIL) 上で専用の命令を持つなどの特別な性質がある。
ECMAScriptのプリミティブ型.
ECMAScript (JavaScript) におけるプリミティブ値はcodice_21, codice_22 , codice_23, codice_24, codice_25, codice_26 および codice_27 の7種類である。