低,中,高级语言,有什么区别?

时间:2010-08-12 13:21:54

标签: programming-languages

我之前听说过这些术语,如 C 不是一种低级语言,C ++是中级语言,而Python是高级语言。我知道它必须对编译代码的方式以及代码的编写方式做些什么。但我想知道的是将语言定义为这3个类别中的一个?这些绝对类别,还是程序员用来相互描述语言的一般概念?

12 个答案:

答案 0 :(得分:67)

是的,它们只是一般条款。这与抽象有关,也与计算机实际做的有多接近。

以下是从非常低到非常高的编程语言列表:

  • Machine Code可能被认为是最低级别的编程语言。

  • Assembly language处于告诉处理器要做什么的水平。仍然存在向机器代码转换的步骤。

  • C是汇编程序的一个步骤,因为你可以用更抽象的术语来指定你想要做的事情,但是你仍然非常接近金属。

    < / LI>
  • C++执行C可以执行的所有操作,但增加了将事物抽象到类中的功能。

  • Java / C#在某种程度上对C ++做了类似的事情,但没有机会做你在C中可以做的所有事情(就像Java案例中的指针操作一样[感谢Joe!] )。他们有垃圾收集,你必须在C ++中手动完成。

  • Python / Ruby甚至更高级别,让您忘记需要在Java或C#等内容中指定的许多细节。

    < / LI>
  • SQL甚至更高级别(它是声明性的)。只需说“按年龄分类给我表中的所有项目”,它将为您提供最有效的方法。

答案 1 :(得分:19)

低级别=长开发时间+非常快的可执行文件

高级别=较短的开发时间+较慢的可执行文件

中等水平介于两者之间

答案 2 :(得分:13)

非常低级别:机器代码

低级别:汇编程序,Forth

中级:C,C ++,大多数系统编程语言

中/高级别:D,Go,垃圾收集系统编程语言

高级:Java,C#,大多数解释语言

更高级别:Lisp方言

最高级别:SQL,声明性编程语言

如果还有其他要添加的内容,请告诉我。

答案 3 :(得分:9)

在计算机科学中,低级编程语言是一种编程语言,它提供很少或没有计算机指令集架构的抽象。 “低”一词指的是语言和机器语言之间小或不存在的抽象量; 因此,低级语言有时被描述为“接近硬件”。 低级语言不需要运行编译器或解释器;编写语言的处理器能够运行代码而无需使用其中任何一种

相比之下,高级编程语言将计算机体系结构的执行语义与程序规范隔离开来,使开发程序的过程更简单,更易理解。

中级语言介于上述两种语言之中

答案 4 :(得分:4)

他们不是绝对的。它们都与当时工业中使用的其他语言相关。例如,有一段时间将程序集视为中级。

“级别”本质上是衡量程序员从实际基于硬件的操作中抽象的程度。在低级语言中,您可能需要关心实际的内存位置,而在高级别中,您只需创建变量并让操作系统处理内存。

普通CPU处理32位或64位指令。在最简单的形式中,将其视为连续的32 1和0 - 这就是处理器实际解释和执行的内容。直接写(机器代码)将是'最低级'。

答案 5 :(得分:1)

低水平意味着更靠近机器,因此更难和更强大。您获得的级别越高,从机器中移除的越多,您获得的“类似英语”,但是您失去了能够控制机器的微小细节所带来的大量功能和功能。更高级别的语言通常也会为您提供更多保护,并采取更多预防措施和检查,而较低级别的语言会信任您,可以这么说,让您自担风险。

答案 6 :(得分:1)

中级语言这个词是我从未听过的。

“低”和“高”是指您在编程中“关闭”机器的方式。最低级别是机器(二进制)代码。接下来(并且仍被认为是低)是汇编程序。更高层次的语言涉及更多的象征和结构,应该更接近人们通常的思维方式。 C(有些C ++)的声誉有点混合低/高级别,因为它有许多高级语言的结构,但也有低级语言的指令(例如移位),但通常不是高级语言

答案 7 :(得分:1)

从低到高,您可以按如下方式对语言进行分类。

机器代码 - &gt;汇编语言 - &gt;编译语言 - &gt;口译语言

请记住,这些不是绝对的黑白定义,而是灰色阴影。这更像是一条指导而非规则。

将机器代码视为本机平台理解的长字符串1和0。考虑一下你的基线......你可以拥有的最低“水平”。

汇编语言可被视为此的象征性表示。我相信汇编代码指令和机器代码指令之间存在1到1的映射。这是你的低级语言。

例如,Java和C ++都是编译语言,但许多人认为C ++是一种比Java更低级的语言,因为它暴露了低级系统访问,而Java则在受保护的环境(虚拟机)中运行。请记住,编译语言在执行之前编译(转换,如果可以)转换为机器代码。 C也是一种编译语言,但被认为是比Java和C ++更低的级别。

为了我们的利益,我们会说C和C ++是低级语言,因为它们提供(相对)小的硬件抽象和直接内存管理。实际上,它们会介于低位和中位之间,你很快就会看到。

我们将调用Java和C#(.NET)中级语言,因为它们具有自动内存管理(垃圾收集),大量高级抽象(IE对象......但C ++支持对象。你明白为什么规模被认为是松散定义的?)

使用解释语言,解释器驻留在内存中并直接读取源代码。这些是高级语言。 Python,Perl,Javascript和PHP都是高级语言的例子。

答案 8 :(得分:0)

C是中级语言BECOZ          我们可以在汇编语言中使用代码只有轻微的区别          指针使它变得强大(如果指针在c中删除则会在低级别中考虑)          它的便携功能使中间的水平  所以我们可以说它是中级语言。

答案 9 :(得分:0)

它都是相对的...“级别”反映了抽象的数量。

答案 10 :(得分:0)

添加一系列编程语言后,您就会在定义中添加细微差别。显然,机器代码和装配与机器有关。理论上C和C ++是机器无关的,但实际上并不是通用的。在C之类的东西,比如需要考虑的对象,你总是可以通过一个指针和一个初始变量管理C和C ++的C子集中的堆栈 - 如果你足够疯狂 - 那么(x86)rsp从未使用过。所以C,是的,它是中等水平。其他一切都是高水平的一些超级水平。

答案 11 :(得分:0)

低级语言非常接近机器语言,可能是二进制或RTL。难以编写并且执行起来非常快。它可以与硬件交互,高级编程语言很容易编写,但可以在编译后执行。