C++ 和 FORTRAN 是低级还是高级编程语言?

计算科学 C++ 正则 语言
2021-12-21 09:53:05

这篇文章中,他们提到 C++ 和 FORTRAN 是低级编程语言。但是,在其他参考资料中,他们将这些语言视为高级编程语言。哪一个是正确的?

2个回答

这实际上是使用术语“高”或“低”级别的程序员的观点问题。

通常人们认为“低级”意味着编程语言能够以与机器内部非常相似的方式更好地访问和操作数据。按照这个标准,严格来说,大多数编程语言都是高级语言,因为它们位于操作系统之上,从而向开发人员隐藏了大量细节。

但是人们通常不像我上面解释的那么严格。它更像是一个频谱。高级语言将寻求隐藏机器内部结构,以便作为程序员您不必担心它们,从而花费更少的精力来完成任务。

那么 C++ 和 Fortran 在这个范围内处于什么位置呢?这取决于这些天的用户。如果您愿意,C++ 可以实现非常高级的编程,也可以进行低级编程。但是,两者之间的配合并不好,并且将它们混合在一起通常会导致错误。Fortran 也是如此,它也具有抽象功能。

一般来说,低级编程语言的定义是非常随意的,并且多年来发生了很大变化。你可以找到不同的来源告诉你不同的事情。正如您在维基百科上看到的定义:

低级编程语言是一种编程语言,它几乎不提供计算机指令集架构的抽象——语言映射中的命令或函数在结构上类似于处理器的指令。

您可以拥有的最低级别的语言是机器代码正如您在此处所读到的,C 和 C++ 可以任意定义为高级或低级:

在过去,C 被认为是一种高级语言。今天,许多工程师可能会嘲笑这一点,因为 C 的级别太低了。C 和 C++ 现在被认为是低级语言,因为它们没有自动内存管理。

并且:

自计算机科学诞生以来,低级的定义发生了很大变化。我不会将 C 限定为低级或高级语言,而更像是一种中间语言。唯一真正的低级编程是机器代码或汇编(asm)。汇编尽可能接近 CPU(计算机的处理器)可以执行的内容,因为它实际上是 CPU 理解的二进制代码的文本翻译。例如,压缩库通常是用 C 构建的,非常特定的部分将使用汇编来构建,但是汇编的数量越来越少,因为编译器在优化方面做得越来越好。

因此,正如您所看到的,它非常依赖于不同的意见,对于一种语言(除了机器语言)没有一个通用的定义来定义低级或高级,但一切都取决于语言的灵活性以及它是如何的用过

C++ 具有很高的灵活性,允许同时具有高级别的抽象,但同时可以控制细节。所以我想说,如果我们想找到一个定义,它可以用作高级或低级语言。

对于 Fortran,我认为它远不如 C++ 灵活(本机没有 OOP,后来从 2003 年开始在最新版本中添加)并且允许的抽象程度较低,但同时它允许对细节的控制较少。所以最终也可以将 Fortran用作高级或低级语言。