プリミティブ型とは? わかりやすく解説

プリミティブ型

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/06 12:12 UTC 版)

プリミティブ型またはプリミティブデータ型: primitive data type)は、データ型の分類用語であり、データ型の中で最も基本的なものを指している。基本データ型basic data type)とも言われる[1]。直訳して原始型と呼ばれることもある。

対義的な分類用語は、複合データ型英語版composite data type)である。コンポジット型、コンポジットデータ型、あるいは複合型とも呼ばれる。複合データ型は、プリミティブ型および複合データ型の構造的または再帰的な組み合わせ(コンポジション)で形成されるデータ型である。なお、「コンポジットデータ型」という用語は、PL/SQLにおける「スカラーデータ型」の対義語としても用いられている[2]

プログラミング言語の仕様に組み込まれる形で標準的に用意されている組み込み型built-in type)[3]には、通常複合データ型が含まれるが、それらをプリミティブ型と同様に扱う場合もある。

概要

プログラミング言語理論英語版理論計算機科学における代数的データ型の視点では、「そのデータ型の定義の中に構成要素として自身あるいは他のデータ型を含まない型」がプリミティブ型である。プリミティブ型はCPUが直接処理できるデータ型という含意があるため、Python などの高級言語ではプリミティブ型という概念は隠蔽されがちである。

通常プリミティブ型として扱われる型の例:

  • 文字型 (character, char) - 1バイトの文字型のほか、2バイトや4バイトの文字型が用意されていることもある。文字セット(エンコーディング)は言語や処理系に依存するが、UTF-8UTF-16UTF-32によるUnicodeのサポートが一般的。文字型の配列によって文字列型が実装されている言語もある。
  • 整数型 (integer, int, short, long, byte) - 各種のサイズがあるが、1, 2, 4, 8バイトの整数型が用意されていることが多い。符号付きのほか、符号無しの型が用意されていることもある。
  • 浮動小数点数型 (float, single, double, real, double precision) - 各種のサイズがあるが、IEEE 754に準拠した単精度と倍精度の浮動小数点数型が用意されていることが多い。
  • 固定小数点数型 (fixed) - 各種の固定精度やスケール指定可能なものがある。
  • ブーリアン型 (boolean, bool) - 真値 (true) または偽値 (false) をとるブール代数型。

プリミティブ型が最も高速な演算を行える言語構成要素である場合が多い。例として整数の加算は、単一マシン命令として演算され、プロセッサによっては単一マシン命令で文字列を処理する具体的な命令を提供している。特に、C言語標準では「plainなint型オブジェクトのサイズは実行環境のアーキテクチャに依存する」とされている。これは、32ビットアーキテクチャではint型が32ビットになりえることを意味する。

組み込み型

組み込み型はプログラミング言語にあらかじめ組み込まれているデータ型である。上記のプリミティブ型に加えて、以下のような型が組み込み型として用意されている場合がある。

  • ポインタ型 - オブジェクトを指し示すためのメモリ上のアドレス情報を保持する型。C/C++では整数値と相互変換可能。
  • 参照型 - オブジェクトを参照するための型。

ポインタ型や参照型では、プリミティブ型よりも大きなサイズのオブジェクトを指し示すことができる。ハンドル型と呼ばれることもあるが、内部的にはポインタあるいは参照と等価であることが多い。

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

言語ごとのプリミティブ型

Smalltalkのプリミティブ型

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

Javaのプリミティブ型

Javaでは以下の型をプリミティブデータ型として規定している[4]

Javaのプリミティブデータ型
型名 説明
byte 符号付き8ビット整数型
short 符号付き16ビット整数型
int 符号付き32ビット整数型
long 符号付き64ビット整数型
float 32ビット単精度浮動小数点数
double 64ビット倍精度浮動小数点数
boolean ブーリアン型
char 16ビットUnicode (UTF-16) 文字型

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

.NETのCLRプリミティブ型

.NET Framework/.NET Core共通言語ランタイム (CLR/CoreCLR) では、System.Type.IsPrimitiveプロパティによって、型がCLRプリミティブ型であるかどうかを判定できる[5]。各.NET言語の組み込みの値型は必ずしもCLRプリミティブ型ではないが、CLRプリミティブ型はすべて値型である。

例えば、十進浮動小数点数型System.Decimalは値型(構造体)であり、C#の組み込み型decimalでもあるが、CLRプリミティブ型ではない。ポインタまたはハンドルを表すときに使用されるプラットフォーム固有の型System.IntPtrは値型であり、CLRプリミティブ型でもあるが、C#の組み込み型ではない(C# 9.0以降はnintとして組み込み型となった[6])。

CLRプリミティブ型は共通中間言語 (CIL) 上で専用の命令を持つなどの特別な性質がある。

ECMAScriptのプリミティブ値

ECMAScript (JavaScript) におけるプリミティブ値はUndefined, Null , Boolean, Number, BigInt, Symbol および String の7種類である[7]

脚注

注釈

出典

関連項目


プリミティブ型

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/08 02:09 UTC 版)

Javaの文法」の記事における「プリミティブ型」の解説

primitive data typeもしくはprimitive typeとも。プリミティブ型はオブジェクトではなくスーパークラス持たない整数型byte8ビット符号付き short16ビット符号付き int32ビット符号付き long64ビット符号付きオーバフロー例外等はならず2の補数として自然な形でラップアラウンド (wrap around) する。例えば、Integer.MAX_VALUE (= 231−1) に1を加えると、結果はInteger.MIN_VALUE (= −231) になる。 浮動小数点数型float32ビット符号付き double64ビット符号付き浮動小数点数決し例外スローしない 0でない値を0(ゼロ)で割った値はInf無限大)と等値である 無限大でない値をInf割った値は0(ゼロ)と等値である。 文字char16ビット符号無しUnicodeJ2SE v 1.4.2までのchar基本多言語面 (BMP) の範囲内コードポイント符号無し16ビット表現するJ2SE 5.0からは、補助文字サポートするため、char符号無し16ビット表現可能でありBMP範囲内に限ればコードポイント同値となるUTF-16符号化形式コード単位表現するように変更され21ビットが必要となるコードポイント表現にはint使用するように変更された(JSR#204)。つまりchar型は互換性の問題からあくまで符号無し16ビットのままとされており、UTF-16符号化形式採用したことから補助文字を扱う場合コードポイント一つコード単位格納したchar値のペアが対応する。これらを適切に取り扱う便宜として、StringクラスプリミティブラッパークラスであるCharacterクラスなどの各種メソッド利用できるブーリアン型booleantrue または falseC/C++類似の言語異なりJavaではfalse代わりに0(ゼロ)またはnullと書くことはできない 同様に、0でない値を書いてtrue代わりとすることはできない ブール型ブール型でない基本型キャストすることとその逆はできない

※この「プリミティブ型」の解説は、「Javaの文法」の解説の一部です。
「プリミティブ型」を含む「Javaの文法」の記事については、「Javaの文法」の概要を参照ください。

ウィキペディア小見出し辞書の「プリミティブ型」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「プリミティブ型」の関連用語

プリミティブ型のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



プリミティブ型のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのプリミティブ型 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのJavaの文法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS