一文了解低级和高级编程语言

中文是一种尽量用简短文字表达更多含义的语言,所以很多时候一句话的含义很容易曲解成别的意思 。最近,有人提出C语言是一种中级语言的概念,所以特意介绍一下低级语言和高级语言的区别 。
【一文了解低级和高级编程语言】

一文了解低级和高级编程语言

文章插图
最初的编程语言是机器语言(machine language),它和硬件系统紧密相连 。机器语言是计算机的一套完整指令集(称为机器码machine code),它可以被CPU直接执行 。机器码中所有的指令用二进制编码,每条二进制指令可以直接控制具体的硬件元器件 。机器语言具有代码直接执行、控制硬件灵活和运行速度快的特点,但是不同种类计算机的机器码是不相同的 , 一种机器语言编写代码只能在一种计算机型号上运行 。
指令示例
1、0000 载入(LOAD)
2、0001 存储(STORE)
寄存器示例
1、0000 寄存器A
2、0001 寄存器B
代码示意
0000,0000,000000010000 代表 LOAD 1, 16
使用机器语言必须记忆全套的机器码,不仅开发过程繁琐、消耗时间长 , 代码的可读性也非常低 。为了让软件工程师更高效的编写程序 , 汇编语言(assembly language)被发明出来 。这种语言的编写方式和机器语言基本相同 , 只是用英文符号替换了机器的编码 。汇编语言的代码不能被计算机直接执行 , 需要通过汇编程序将它们转换成可执行的机器代码 。虽然机器代码已经被容易记忆的英文符号代替,但是程序的开发难度依然很高 。程序开发时不但需要控制硬件计算器和寄存器等,还需要解决数据在硬件中存储的地址转换等问题 。
由于机器语言和汇编语言中的指令直接映射为硬件操作,语言没有进行更高级别的抽象,所以这类语言被称之为低级语言(Low-level programming language) 。计算机架构中最常使用的是分层架构,例如OSI七层网络模型、TCP/IP四层网络模型,所以这里的低级指代的是较低的抽象层级 。
与低级语言相对的是高级语言(Heigh-level programming language),现在常用的开发语言都是高级语言,例如:C/C++、JAVA、php、Python/ target=_blank class=infotextkey>Python、JavaScript、Golang等 。高级语言可以跨不同的计算机硬件架构和操作系统 。高级语言的语法更接近自然语言的语法和结构,也与系统硬件的“距离”更远 。通过语言自身的开发库兼容不同的操作系统,通过操作系统兼容不同的硬件架构 。从这个分类来看,C语言虽然没有现代语言的很多特性,例如:面向对象、内存管理、函数编程等 。但是,完全符合高级语言的特性,所以不是什么中级语言 。
高级语言和低级语言只是翻译上的简化,并不是对开发语言好坏或者强弱的评判 。每种开发语言都有特定的使用场景和推进计算机发展的独有价值 。




    推荐阅读