代码之家  ›  专栏  ›  技术社区  ›  Martin

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

  •  32
  • Martin  · 技术社区  · 6 年前

    我以前听过这些术语描述语言,比如 C级 不是一种低级语言,C++是中间层,Python是高级语言。我理解它与代码的编译方式和编写方式有关。但我想知道的是,是什么将一种语言定义为这三类之一?这些是绝对的范畴,还是仅仅是程序员用来相互描述语言的一般概念?

    12 回复  |  直到 9 年前
        1
  •  69
  •   Peeja    11 年前

    是的,它们只是一般术语。这与抽象有关,也与你离计算机实际工作的距离有多近有关。

    下面列出了从非常低级到非常高级的编程语言:

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

    • Assembly language

    • C 是汇编语言的一个进步,因为您可以用稍微抽象一点的术语来指定您想要做什么,但是您仍然非常接近于金属。

    • C++ 做C所能做的一切,但增加了将事物抽象到类中的能力。

    • Java / C# 在某种程度上,类似于C++,但没有机会在C中做所有的事情(比如java中的指针操作[谢谢乔!])。它们有垃圾收集,但你必须手动在C++中进行。

    • Python / Ruby

    • SQL 更高的级别(它是声明性的)。只要说“把表中所有的项目都按年龄排序给我”,它就会为你找到最有效的方法。

        2
  •  20
  •   docesam    7 年前

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

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

    中间层介于两者之间

        3
  •  14
  •   bloudermilk    14 年前

    非常低级:机器代码

    低级:汇编程序,Forth

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

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

    更高层次:Lisp方言

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

    如果还有什么要补充的,告诉我。

        4
  •  8
  •   Ankur Mukherjee    14 年前

    在计算机科学中,a 低级程序设计语言 是一种提供 从计算机的指令集结构中很少或根本没有抽象 . “低”是指 语言和机器语言之间的少量或不存在的抽象; 正因为如此,低级语言有时被描述为“接近硬件” 低级语言不需要编译器或解释器来运行;为其编写语言的处理器能够在不使用这两种语言的情况下运行代码 .

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

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

        5
  •  4
  •   Adam S    14 年前

    它们不是绝对的。它们都与当时工业上使用的其他语言有关。例如,有一段时间,装配被认为是中级的。

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

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

        6
  •  1
  •   froadie    14 年前

    低级别意味着离机器更近,因此难度更大,功能更强。你得到的级别越高,从机器中移除的越多,你得到的“英语”也就越像,但是你失去了很多能够控制机器细节的能力和功能。高级语言通常也更倾向于保护你,并有更多的预防措施和检查到位,而较低级别的语言信任你,可以说,让你发挥自己的风险。

        7
  •  1
  •   GreenMatt    14 年前

    中级语言这个词我从没听说过。

    “低”和“高”是指在编程时与机器的“接近程度”。最低级别是机器(二进制)代码。下一个(仍然被认为是低)是汇编程序。更高层次的语言包含更多的象征意义和结构,应该更接近人类通常的思维方式。C(和一些C++)有一个声誉,因为它有许多高级语言,但也有一些指令(例如,移位),它们是低级语言,但通常不在高级语言中。

        8
  •  1
  •   ravibhagw    14 年前

    从低到高,你可以把语言分类如下。

    记住,这些不是绝对的黑白定义,而是灰色的阴影。这与其说是一条规则,不如说是一条准则。

    把机器代码想象成本地平台所理解的由1和0组成的长字符串。把这当作你的底线。。。你能拥有的最低“水平”。

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

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

    我们将Java和C#(.NET)称为中级语言,因为它们具有自动内存管理(垃圾收集)、大量高级抽象(即对象。。。但是C++支持对象。比例被认为是松散的吗?)

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

        9
  •  0
  •   user3339945    11 年前

    C是中级语言BECOZ 指针使其强大(如果在c中删除指针,那么它将考虑在低级别) 它的便携功能使中紫菜 所以我们可以说它是中级语言。

        10
  •  0
  •   user3362761    11 年前

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

        11
  •  0
  •   cdcdcd    8 年前

    一旦您添加了编程语言的一系列级别,您就为定义添加了细微差别。很明显,机器代码和程序集依赖于机器。理论上C和C++是机器无关的,但事实上这不是通用的。在C中,需要考虑对齐,并且总是通过指针和单个初始化变量来管理C中的堆栈和C++的C子集——如果你足够疯狂-那么(x86)RSP就永远不会被使用。是的,这是中等水平。其他的都是高水平的,超高水平的。

        12
  •  0
  •   satya pati    7 年前

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