基本データ型、プリミティブ データ型、および組み込みデータ型に関するいくつかの定義を見てきました。しかし、データ型が基本、プリミティブ、またはプリミティブ基本であるとどのように言うことができるかはまだわかりません!
この方法でデータ型の型を指定するのに役立つ適切な定義はありますか?
ウィキペディアによると、プリミティブ データ型は基本データ型と組み込みデータ型で構成されています。foldoc.orgは次のように述べています。
私は本当に混乱しています!
基本データ型、プリミティブ データ型、および組み込みデータ型に関するいくつかの定義を見てきました。しかし、データ型が基本、プリミティブ、またはプリミティブ基本であるとどのように言うことができるかはまだわかりません!
この方法でデータ型の型を指定するのに役立つ適切な定義はありますか?
ウィキペディアによると、プリミティブ データ型は基本データ型と組み込みデータ型で構成されています。foldoc.orgは次のように述べています。
私は本当に混乱しています!
Michael L. Scott の著書、Programming Language Pragmatics、セクション 7.1.1 (型の定義)、p.322 からの引用:
型について考えるには少なくとも 3 つの方法があり、それらを表示的、構成的、および抽象化ベースの観点と呼ぶことができます。[...] 建設的な観点からは、型は組み込み型 (整数、文字、ブール、実数など。プリミティブ型または定義済み型とも呼ばれます) の小さなコレクションの 1 つ、または複合型のいずれかです。型コンストラクタ(
record
、など) を 1 つ以上の単純な型array
に適用することによって作成されます。set
(この「コンストラクター」という用語の使用は、C++ および Java の初期化関数とは関係ありません。[...]
したがって、理論的なPOVから、これらの用語(プリミティブ、ビルトイン、定義済み-基本も追加します)はすべて多かれ少なかれ同義語であり、それらから構築された複合型とは対照的にすべて理解できます。再帰的な方法、ある種の「型に対する操作」 ( char の配列、ポインターのコレクション、それぞれが float と string で構成されるレコードのリストなど)
@KeithThompsonに同意しますが、実用的なPOVから、各言語はこれらの用語(の一部)を使用して非常に具体的な意味を割り当てるため、特定の言語仕様を参照して、そのコンテキストで何を意味するかを知る必要があります.
組み込みデータ型は、その言語で使用でき、ライブラリや記述したコードから追加されたものではありません。通常、これはint
またはの場合ですstring
。
ウィキペディアが言うように、「基本的ではない組み込み型を「プリミティブ」と見なすべきかどうかについて意見はさまざまです」、プリミティブ データ型の定義は実際には明確ではありません。私の個人的な意見では、プリミティブ データ型は基本データ型、つまり構造やサブコンポーネントを持たないものと同じです。これint
も良い例ですが、string
サブコンポーネント (ビルド元のさまざまなキャラクター) があります。別の非プリミティブ型は ですfile
。これは、ファイル名やパスなどの構造を持っているためです。