关于内置,基本和原始数据类型的更清晰?

时间:2013-04-12 07:52:58

标签: types primitive built-in

我已经看到了一些关于基本数据类型基本数据类型内置数据类型的定义。但我还不确定,我怎么能说数据类型是基本的或原始的,甚至是原始的基础! 是否有任何好的定义来帮助以这种方式指定数据类型的类型?

维基百科说原始数据类型包括基本数据类型和内置数据类型。 foldoc.org说:“某些类型是原始的 - 内置于语言中,没有可见的内部结构”。

我真的很困惑!

2 个答案:

答案 0 :(得分:2)

引自Michael L. Scott的书,编程语言语用学,第7.1.1节(类型的定义),第322页:

  

至少有三种方式可以考虑类型,我们可以将其称为指称建设性基于抽象的点视图。 [...]   从建设性的角度来看,类型是内置类型的一小部分之一(整数,字符,布尔值,实数等;也称为原语预定义类型),或通过应用类型构造函数recordarray,{创建的复合类型{1}}等)一种或多种更简单的类型。 (术语“构造函数”的使用与C ++和Java的初始化函数无关。[...]

因此,从理论上的POV,那些术语(原始内置预定义 - 我将添加 basic < / em>也是或多或少的同义词,与复合类型相比,它们都是可以理解的,这些类型是由它们构建的,可能以递归方式使用某种“类型操作” (一个char 数组,一个指针集合一个记录列表,每个记录包含一个浮点数和一个字符串等)。

我同意@KeithThompson的观点,即从实际的POV中,每种语言都会使用(某些)这些术语为它们分配非常具体的含义,因此您必须浏览特定的语言规范才能知道在该上下文中的含义。 / p>

答案 1 :(得分:1)

内置数据类型是一种语言版本,不会从库或您编写的代码中添加。通常情况下,intstring就是这种情况。

正如Wikipedia所说:“关于非基本的内置类型是否应被视为'原始'的观点不同”,原始数据类型的定义不是真的很清楚。在我个人看来,原始数据类型基本数据类型相同,i。即一个没有结构或子组件的人。同样int是一个很好的例子,但是string有子组件(构建它的不同字符)。另一种非基本类型是file,因为它有一些结构,如文件名或路径。