在信息学理论中,我一直听到并阅读有关高级和低级语言的知识.
但我不明白为什么这仍然相关,因为除了今天使用的汇编程序之外没有任何(相关的)低级语言.
所以你得到:
低级别
汇编
绝对不是低级别的
C
BASIC
FORTRAN
COBOL
...
高水平
C++
红宝石
蟒蛇
PHP
...
如果汇编程序是低级别的,你怎么能把例如C放到同一个列表中.我的意思是:与汇编程序相比,C是非常高级的.即使对于COBOL,Fortran等也是如此.
那么,如果汇编程序真的是唯一的低级语言,为什么每个人都不断提及高级和低级语言呢?
brabster.. 55
你会发现的
我们坚持的许多真理都依赖于我们自己的观点.
对于C程序员,Assembler是一种低级语言.对于Java程序员来说,C是一种低级语言,依此类推.
我怀疑那些用1和0 编程第一个存储程序计算机的人会认为Assembler是一种高级语言.这都是相对的.
(引自绝地归来)
你会发现的
我们坚持的许多真理都依赖于我们自己的观点.
对于C程序员,Assembler是一种低级语言.对于Java程序员来说,C是一种低级语言,依此类推.
我怀疑那些用1和0 编程第一个存储程序计算机的人会认为Assembler是一种高级语言.这都是相对的.
(引自绝地归来)
根据维基百科,低级语言是机器代码和汇编.
从来源:
在计算机科学中,低级编程语言是一种编程语言,它几乎不提供计算机指令集架构的抽象."低"一词是指语言和机器语言之间很少或不存在的抽象量; 因此,低级语言有时被描述为"接近硬件".
然后,回答:
那么,如果汇编程序真的是唯一的低级语言,为什么每个人都不断提及高级和低级语言.
我不知道"每个人"是谁,但我想冒昧地猜测,当高级语言不像现在这样平常时,谈论低级别与高级别更为相关(因为有相对大量的程序员编写汇编代码).在现代,它是一个不那么重要的区别.就个人而言,我很少听到人们使用这些术语,除了区分大会与否(除非那些时候你可能会听到有人提到Python引用C或C++作为低级别,但这不符合原始定义的精神).
你问的是一个相对主观的问题; 这是关于术语,白话和观点的问题.
例如,Lisp是高级语言还是低级语言?如果实现在Lisp机器上运行怎么办?
通常,当人们尝试从低级别到高级别构建频谱时,他们试图量化的是"与硬件接近"的程度,而不是"抽象"程度.
计算实现与硬件接近的品质:
程序员直接控制数据的内存布局,并在运行时访问数据的内存地址.
数学运算是根据硬件定义的,或者是松散定义的,以便符合不同类型的硬件.
可能存在提供动态内存分配的库,但动态内存的使用是手动的.
字符串操作期间的内存管理是手动的.
反向质量计入实现的硬件抽象:
程序员没有对数据地址的运行时访问(引用而不是指针).
数学运算是以不与特定硬件相关的特定术语定义的.(例如,ActionScript 3支持Number
从整数自动转换为浮点而不是经历溢出的类型.)
动态内存的管理由环境处理,可能通过引用计数,垃圾收集或其他自动内存管理方案来处理.
字符串操作期间的内存管理总是对程序员隐藏并由环境处理.
与运行它的硬件相比,其他特性可能会使语言非常抽象:
声明的,基于搜索的语法.(例如Prolog)
考虑到这些因素,我会修改您编写的频谱,如下所示:
最低级别:
有问题的平台的汇编语言.
具有比汇编更高级别流控制的低级语言:
C,C++
帕斯卡尔
高级语言:
FORTRAN
COBOL
蟒蛇
Perl的
最高级语言:
PROLOG
蟒蛇
方案
Python按意图出现两次 - 它根据代码的编写方式跨越一部分频谱.
作为底层,我将添加:
.NET IL
Java JVM
在VB6等环境中使用的其他P代码