简单理解编程语言的工作原理
编程语言定义
编程语言可以简单的理解为一种计算机和人都能识别的语言。计算机只能识别二进制,人识别的是人类语言。那怎么实现计算机和人都能识别的语言呢?先看下编程语言的发展历程,再来回答这个问题。
分类/发展阶段
第一代:机器语言
- 简单来说就是:
- 机器语言就是由0和1组成的指令代码
- 每个指令代码会执行计算机内部相应的电路
- 指令代码的集合即是指令系统
- 不同的计算机厂家的指令代码一般不同
- 百科说明:机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对操作码。不同的计算机都有各自的机器语言,即指令系统。从使用的角度看,机器语言是最低级的语言。
第二代:汇编语言
- 简单来说:
- 用一些容易理解和记忆的字母,单词来代替一个特定的指令
- 这些字母需要转为二进制的机器语言才能被计算机执行
- 不同设备中汇编语言对应着不同的机器语言指令集,所以汇编程序不可直接移植到不同的平台上
- 目前实际应用,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
- 百科说明:汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
第三代:高级语言
- 简单来说:
- 较接近自然语言和数学公式的编程
- 高级编程语言编写的程序需要经过翻译,翻译成机器所能识别的二进制数才能由计算机去执行,运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些
- 不能用于编写直接访问机器硬件资源的系统软件或设备控制软件(可以用汇编语言编写的程序,作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址,来实现相应的功能)
- 不依赖于计算机硬件,能够在不同机器上运行的程序,程序的有很好的可移植性
- 百科说明:高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。
- 分类:
- 命令式语言
- 函数式语言
- 逻辑式语言
- 面向对象语言
- 工作方式
- 解释:对高级语言程序进行解释并执行的程序称为解释程序(软件)。它的功能是读入源程序,按源程序动态逻辑顺序进行逐句分析、翻译,解释一句执行一句,不产生任何中间代码,最终得到程序的执行结果
- 编译:编译是源程序翻译成机器指令形式的目标程序的过程,再用链接程序把目标程序链接成可执行程序后才能执行
如何实现机器和人类都能识别的编程语言:编译原理
- 简单来说:
- 人按照编程语言规定的语法编写源程序/源代码
- 解释器/编译器按照对应的语法将源代码解释/编译为汇编语言
- 不同的平台/设备按照自身设备指令集转为自身设备可以执行的二进制指令
- 机器根据二进制指令执行相应的电路
- 百科说明:编译原理即是对高级程序语言进行翻译的一门科学技术, 我们都知道计算机程序由程序语言编写而成, 在早期计算机程序语言发展较为缓慢, 因为计算机存储的数据和执行的程序都是由0、1代码组合而成的, 那么在早期程序员编写计算机程序时必须十分了解计算机的底层指令代码通过将这些微程序指令组合排列从而完成一个特定功能的程序, 这就对程序员的要求非常高了。人们一直在研究如何如何高效的开发计算机程序, 使编程的门槛降低。