プリミティブ型

プリミティブ型とは



プログラミングにおけるプリミティブ型(primitive data type)は、データ型の最も基本的な分類であり、基本データ型とも呼ばれます。これは、それ以上分解できない、最もシンプルなデータ構造を指します。

複合データ型との対比



プリミティブ型の対義語として、複合データ型(composite data type)があります。複合データ型は、プリミティブ型や他の複合データ型を組み合わせて作られる、より複雑なデータ構造です。例えば、配列構造体などが複合データ型に該当します。

プリミティブ型の特徴



定義: データ型の中に他のデータ型を含まない型。
処理: CPUが直接処理できるデータ型である場合が多い。
高速性: 一般的に、プリミティブ型の演算は高速に実行されます。


プリミティブ型の種類



プログラミング言語によって多少の違いはありますが、一般的にプリミティブ型として扱われるものには以下のようなものがあります。

文字型 (char)



1バイト、2バイト、4バイトなど、様々なサイズがあります。
文字セット(エンコーディング)は言語や処理系に依存しますが、UTF-8UTF-16、UTF-32などが一般的です。
文字型の配列によって文字列型が実装されている言語もあります。

整数型 (int, short, long, byte)



1バイト、2バイト、4バイト、8バイトなど、様々なサイズがあります。
符号付きと符号なしの型が用意されている場合があります。

浮動小数点数型 (float, double)



単精度と倍精度の型が用意されていることが多いです。
IEEE 754規格に準拠しています。

固定小数点数型 (fixed)



固定精度やスケールを指定できるものがあります。

ブーリアン型 (boolean, bool)



真(true)または偽(false)の値を取る型です。


組み込み型



プログラミング言語には、プリミティブ型以外にも、あらかじめ組み込まれている組み込み型があります。以下に代表的な組み込み型をいくつか紹介します。

ポインタ型



メモリ上のアドレス情報を保持する型です。
C/C++では、整数値と相互に変換できます。

参照型



オブジェクトを参照するための型です。
ポインタ型と同様に、プリミティブ型よりも大きなサイズのオブジェクトを指し示すことができます。
ハンドル型と呼ばれることもあります。

参照型として扱われる組み込み型の例



配列
文字列
タプル (ML, Python)
連結リスト (LISP)
複素数 (Python)
有理数 (LISP)
関数 (第一級関数、クロージャ)


プログラミング言語におけるプリミティブ型



プリミティブ型は、言語によって扱い方や種類が異なります。以下にいくつかの言語での例を挙げます。

Smalltalk



Smalltalkでは、プログラムによって拡張されたプリミティブ型を許可しており、演算命令を追加したり、言語固有の演算命令を再定義したりすることも可能です。

Java



Javaでは、以下の型がプリミティブデータ型として規定されています。

`byte`
`short`
`int`
`long`
`float`
`double`
`boolean`
`char`

Javaのプリミティブ型はオブジェクトではないため、そのままではコレクションに格納できません。そのため、プリミティブ型をオブジェクトとして扱えるようにするプリミティブラッパークラスが用意されています。

.NET (CLR)



.NETの共通言語ランタイム (CLR) では、`System.Type.IsPrimitive` プロパティによって、型がCLRプリミティブ型かどうかを判定できます。CLRプリミティブ型はすべて値型ですが、各.NET言語の組み込み値型は必ずしもCLRプリミティブ型とは限りません。

例えば、`System.Decimal` は値型(構造体)であり、C#の組み込み型 `decimal` でもありますが、CLRプリミティブ型ではありません。

ECMAScript (JavaScript)



ECMAScript (JavaScript) におけるプリミティブ値は以下の7種類です。

Undefined
Null
Boolean
Number
BigInt
Symbol
* String


まとめ



プリミティブ型は、プログラミングにおける最も基本的なデータ型であり、効率的な処理を行うための重要な要素です。各言語によって多少の差異はありますが、その概念を理解することはプログラミングを行う上で不可欠です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。