低级和高级数据类型

时间:2014-11-04 15:17:40

标签: types programming-languages

有人可以解释一般编程环境中的低级和高级数据类型。 来自Java背景我认为低级别是原始类型,如整数,布尔值,字符串等,高级别将是复合对象类型。 不太确定这是一般的理解,但我无法在网上看到明确的定义。

2 个答案:

答案 0 :(得分:0)

您的理解通常是正确的,但它也非常依赖于您的特定代码堆栈。

例如,您将String列为基本类型;但在C语言中,字符串通常只是一个字符数组,而功能齐全的字符串(如Java中的字符串)则是一个非常高级的对象。至少比某些struct更高级别,您可以轻松定义,如复数,或像typedef struct {float x, y} Point这样的2d点。

当然可以简单地解释一下,因为Java是一种比C更高级的语言,所以它的原语比C语言更高。最后,这只意味着'高/低'水平被定义为相对值,有些东西比其他水平更高。

最终,软件中的所有内容都必须由CPU执行,因此有必要注意哪些概念是在硬件中实现的,哪些概念不是。

大多数CPU都使用整数,指针,位字段,浮​​点等。其中一些还处理数组甚至简单(C风格)字符串。

结构和类型值通常在代码中是“隐式的”,但不是CPU特性,因此它们的级别略高,但通常很低,以至于可能没有明确的代码来处理它们,只是结构的程序使数据按预期运行。

答案 1 :(得分:0)

我会说'低级'是依赖于您的操作系统架构的东西,例如C中的'unsigned int'。它在64位和32位架构上是不同的。另一方面,你可以从你的硬件中抽象出一些东西。例如任何类型的无限列表(在haskell中)