1

我只是对那里的所有语言类型有点困惑。与面向对象/过程的区别相比,高级/低级语言区别有什么区别?许多类比看起来很相似。

4

7 回答 7

7

高/低级别的区别更多地是关于抽象而不是范式。通常,您越“低”,您就越需要了解正在运行的机器——它的内存、文件系统,甚至处理器指令集。

高级语言在您和机器之间放置了一层抽象。它处理血腥的细节。这既好又坏。抽象消除了一些担忧,但也消除了控制。

高级语言可以是过程式的、面向对象的、函数式的等等……

低级语言可能不提供像面向对象这样的概念,因为面向对象是一种抽象。

于 2009-06-02T06:59:23.220 回答
1

高级/低级是指语言与汇编程序和机器代码的感知“接近”(汇编程序是低级的,C 被视为低于 C++ 或 Java 等)。

OO 和过程编程是为支持某种程序设计方式(称为编程范式)而提供的语言工具。它们与语言是高级还是低级无关,因为 OO 语言往往不是低级的,因为汇编程序不了解对象和类。还有很多其他的范例,比如函数式编程。

于 2009-06-02T07:01:21.780 回答
1

并不真地。

例如,c++ 是面向对象的,而且级别相当低。

于 2010-11-02T09:42:58.323 回答
0

这两个轴(“范式”和“级别”)之间不一定有任何因果关系,但我认为相关性是逻辑和函数语言往往是最高级别的,紧随其后的是面向对象的语言,通常是过程语言低等级。

这不是问题的一部分,但我也认为相关的动态类型语言往往比静态类型语言更高级别。

我认为对于某人来说,在三个轴上绘制编程语言的三维散点图可能是一个有趣的可视化:范式(逻辑/功能/oo/过程)类型(静态/动态)和级别(参见例如“代码完成” ' 用于衡量水平的各种指标)。

于 2009-06-02T07:00:42.220 回答
0

“高水平”和“低水平”是人们可能不同意的有些模糊的术语。您可以通过您必须编写多少代码来完成特定任务来查看编程语言提供的抽象量,然后将需要较少代码的语言称为更高级别。当然,那么您需要一种测量代码大小的方法。

于 2009-06-02T07:04:35.207 回答
0

我认为这里可以做一个很好的类比。

面向对象的语言确实往往比纯功能语言的级别更高。看看 c++ 和 c。是的,正如 docesam 所提到的,c++ 仍然相当低级,但是 c++ 仍然比它的纯粹功能性的哥哥 c 更高。

不,它并不总是那么简单,因为面向对象并不是使语言成为高级语言的唯一因素,但它绝对是一个指标,因为面向对象意味着对真正的原始机器指令有更多的抽象。

但是面向对象不足以确定哪种语言是最高级别的。

我会看以下几点:

  • 该语言有静态类型还是动态类型?(Javascript 和 Python 与 Java 和 c++)
  • 面向对象还是不面向对象?(c 与 c++)
  • 纯文本宏或模板?(c 与 c++)
  • 动态绑定 vs 静态绑定(同样是 Javascript & Python vs Java & c++)
  • 该语言是否支持命名函数,还是必须使用换行符?
  • 语言是否允许评论之类的东西?
  • 还有很多
于 2016-11-30T02:02:35.747 回答
-1

我喜欢这么说——这一切都归结为机器指令集。因此,无论某些东西表示多么高级,它仍然归结为机器指令。因此,高级语言是思想的抽象,而低级语言则更接近硬件。

类比是相似的,因为它都归结为一件事——机器代码!

于 2009-06-02T07:56:17.333 回答