中文是一种尽量用简短文字表达更多含义的语言,所以很多时候一句话的含义很容易曲解成别的意思 。最近,有人提出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语言虽然没有现代语言的很多特性,例如:面向对象、内存管理、函数编程等 。但是,完全符合高级语言的特性,所以不是什么中级语言 。
高级语言和低级语言只是翻译上的简化,并不是对开发语言好坏或者强弱的评判 。每种开发语言都有特定的使用场景和推进计算机发展的独有价值 。
推荐阅读
- 食品的电子“身份证”都包含哪些信息?一文读懂
- 了解异国习俗有什么意义 异国的意义是什么意思
- 怎样挑选莲雾了解的说下 怎么挑莲雾
- 每个程序员都必须了解的十种数据库
- 一文读懂 AI Agents 技术
- 一文搞懂微服务架构演进
- 一文读懂常见的缓存策略
- 一起来了解JavaScript与ECMAScript这对编程黄金组合
- 了解手机定位功能,如何不用对方同意查到对方位置
- 哪些精华油相对比较清爽、不油腻?可以一起了解一下这5款精华油