哪种编程语言不被认为是高级的?

hil*_*ilo 19 programming-languages low-level high-level

在信息学理论中,我一直听到并阅读有关高级和低级语言的知识.

但我不明白为什么这仍然相关,因为除了今天使用的汇编程序之外没有任何(相关的)低级语言.

所以你得到:

低级别

  • 汇编

绝对不是低级别的

  • C
  • BASIC
  • FORTRAN
  • COBOL
  • ...

高水平

  • C++
  • 红宝石
  • 蟒蛇
  • PHP
  • ...

如果汇编程序是低级别的,你怎么能把例如C放到同一个列表中.我的意思是:与汇编程序相比,C是非常高级的.即使对于COBOL,Fortran等也是如此.

  • 那么,如果汇编程序真的是唯一的低级语言,为什么每个人都不断提及高级和低级语言呢?

bra*_*ter 55

你会发现的

我们坚持的许多真理都依赖于我们自己的观点.

对于C程序员,Assembler是一种低级语言.对于Java程序员来说,C是一种低级语言,依此类推.

我怀疑那些用1和0 编程第一个存储程序计算机的人会认为Assembler是一种高级语言.这都是相对的.

(引自绝地归来)

  • 为绝地报价+1! (16认同)
  • 可能有一堆语言,其程序员会认为Java低级,等等......;)谁知道编写CPU微代码的人(如果这样的东西仍然存在)会想到汇编程序...... (2认同)

dan*_*ben 8

根据维基百科,低级语言是机器代码和汇编.

从来源:

在计算机科学中,低级编程语言是一种编程语言,它几乎不提供计算机指令集架构的抽象."低"一词是指语言和机器语言之间很少或不存在的抽象量; 因此,低级语言有时被描述为"接近硬件".

然后,回答:

那么,如果汇编程序真的是唯一的低级语言,为什么每个人都不断提及高级和低级语言.

我不知道"每个人"是谁,但我想冒昧地猜测,当高级语言不像现在这样平常时,谈论低级别与高级别更为相关(因为有相对大量的程序员编写汇编代码).在现代,它是一个不那么重要的区别.就个人而言,我很少听到人们使用这些术语,除了区分大会与否(除非那些时候你可能会听到有人提到Python引用C或C++作为低级别,但这不符合原始定义的精神).

  • +1:“我不知道‘每个人’是谁,”或者,正如我所听到的,“‘他们’是谁?说出三个。” (3认同)

Hea*_*utt 8

你问的是一个相对主观的问题; 这是关于术语,白话和观点的问题.

例如,Lisp是高级语言还是低级语言?如果实现在Lisp机器上运行怎么办?

通常,当人们尝试从低级别到高级别构建频谱时,他们试图量化的是"与硬件接近"的程度,而不是"抽象"程度.

计算实现与硬件接近的品质:

  • 程序员直接控制数据的内存布局,并在运行时访问数据的内存地址.
  • 数学运算是根据硬件定义的,或者是松散定义的,以便符合不同类型的硬件.
  • 可能存在提供动态内存分配的库,但动态内存的使用是手动的.
  • 字符串操作期间的内存管理是手动的.

反向质量计入实现的硬件抽象:

  • 程序员没有对数据地址的运行时访问(引用而不是指针).
  • 数学运算是以不与特定硬件相关的特定术语定义的.(例如,ActionScript 3支持Number从整数自动转换为浮点而不是经历溢出的类型.)
  • 动态内存的管理由环境处理,可能通过引用计数,垃圾收集或其他自动内存管理方案来处理.
  • 字符串操作期间的内存管理总是对程序员隐藏并由环境处理.

与运行它的硬件相比,其他特性可能会使语言非常抽象:

  • 声明的,基于搜索的语法.(例如Prolog)

考虑到这些因素,我会修改您编写的频谱,如下所示:

最低级别:

  • 有问题的平台的汇编语言.

具有比汇编更高级别流控制的低级语言:

  • C,C++
  • 帕斯卡尔

高级语言:

  • FORTRAN
  • COBOL
  • 蟒蛇
  • Perl的

最高级语言:

  • PROLOG
  • 蟒蛇
  • 方案

Python按意图出现两次 - 它根据代码的编写方式跨越一部分频谱.


Cad*_*oux 5

作为底层,我将添加:

  • .NET IL
  • Java JVM
  • 在VB6等环境中使用的其他P代码