5

在维基百科上阅读:

“术语高级和低级本质上是相对的。几十年前,C 语言和类似语言最常被认为是“高级”,因为它支持表达式评估、参数化递归函数和数据类型和结构,而汇编语言被认为是“低级”的。今天许多程序员可能将 C 称为低级,因为它缺乏大型运行时系统(没有垃圾收集等),基本上只支持标量操作,并且“

http://en.wikipedia.org/wiki/High_level_language

这到底是什么意思?其他编程语言提供哪些 C 不提供的操作?

4

1 回答 1

16

鉴于本文的上下文和主题,本文所指的是术语“标量”,因为它是用 C 语言本身定义的。在 C 语言中,算术类型和指针类型一起被称为标量类型(参见 6.2.5/21)。在日常语言中,我们经常看到这些类型被称为基本类型或内置类型(而正确的正式术语又是scalar)。关键是标量类型旨在成为硬件立即(或几乎立即)支持的类型。C 中的大多数非概念操作仅对标量类型和标量类型进行操作。

如果您看一下 C 语言的历史,您会发现 C 的早期版本非常严格scalar,您甚至无法将一个 struct 对象分配给另一个 struct 对象(或将其传递给函数/从按值的函数)。在核心语言中进行结构复制的能力后来被添加到 C 中。直到今天,它基本上仍然是整个核心语言中唯一的非标量操作。

另一方面,C++ 以及其他高级语言支持对用户定义类型(根据定义不是scalar)或其他硬件没有立即支持的类型的操作。

PS 不,本文试图提出的观点与向量运算无关,而不是标量运算。当然,对向量运算的支持与语言级别完全正交。您可以在低级语言和高级语言中进行向量操作。标量一词在我上面描述的某种意义上使用。

于 2010-02-28T04:36:56.463 回答