高级编程语言是否倾向于面向对象而低级语言是面向程序的?

时间:2009-06-02 06:51:47

标签: oop procedural-programming

我对所有语言类型感到有些困惑。与面向对象/程序的区别相比,高级/低级语言区别之间有什么区别 - 如果有的话?许多类比看似相似。

7 个答案:

答案 0 :(得分:7)

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

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

高级语言可以是程序性的,面向对象的,功能性的等等......

低级语言可能无法提供面向对象等概念,因为面向对象是一种抽象。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

不是真的。

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

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

“高级别”和“低级别”是一些人们可能不同意的模糊术语。您可以通过编写完成特定任务所需的代码量来查看编程语言提供的抽象量,然后调用需要更少代码的语言。当然,那么你需要一种方法来衡量代码大小。

答案 5 :(得分:0)

我认为这里有一个很好的比喻就是这个。

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

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

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

我要注意以下事项:

  • 语言是否具有静态或动态类型? (Javascript& Python vs Java和c ++)
  • 面向对象与否? (c vs c ++)
  • 纯文字宏或模板? (c vs c ++)
  • 动态绑定与静态绑定(再次是Javascript& Python vs Java& c ++)
  • 语言是否支持命名函数,还是必须使用行跳转?
  • 语言是否允许注释等内容?
  • 更多

答案 6 :(得分:-1)

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

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