梦想视角|现代软件编程语言的发展、分类及现状

软件编程语言的发展 , 是随着硬件技术的不断进步而逐步发展起来的 。 从最初的机器语言 , 发展到助记符式的汇编语言 , 再到今天还在不断完善中的高级语言 , 其使用是越来越广泛 , 所起的作用也是越来越重要 。
梦想视角|现代软件编程语言的发展、分类及现状
文章图片
软件编程语言的第一阶段 , 即机器语言 , 严格来说 , 不算真正意义上的编程语言 。 机器语言对硬件的依赖程度太大 , 基本上被绑定到某种类型的机器设备上了 , 比如最早可用于机器语言设计的被称之为现代电子计算机的前身的分析机 。 从某种程度上说 , 早期的所谓机器语言 , 也就是根据设备的制作目的 , 将解决某一问题的逻辑顺序 , 在设备上依次实现 , 得出预想的结果而已 。 和结构化编程的一段代码类似 , 可以说一个设备就是一段结构化程序的物理实现 。
后期随着相关理论及硬件技术的发展 , 编程语言的相关概念被逐渐提出并实现 , 推进了机器语言的演化 。 比如世界上首位程序员——阿达·洛芙莱斯在计算机软件领域做出的许多开创性的贡献:如变量、递归、程序算法的提出等(详见软件世界的缘起及现代编程语言的诞生 , 程序员群体有一位老祖母) 。
梦想视角|现代软件编程语言的发展、分类及现状
文章图片
而随着晶体管、电子管等硬件技术的发展 , 摩根定律、布尔代数等数学理论的完善 , 最终在计算机发展中出现了寄存器、二进制算法等概念和理论 , 推进了机器代码的标准化 , 即基于“0/1”或者说“是/否”基础的现代机器语言 。
寄存器从硬件实现上来说 , 可以理解为一个电容器 , 其储电和放电的状态就可以分别表示“0”或者“1” , 据此可以完美的实现机器语言的相关功能 。 寄存器最起码具备四种功能 , 即清除、存储、接收、输出 。 而机器语言通过“0/1”进行编写 , 通过寄存器进行存储及相关运算 , 从而实现了编程过程 。
梦想视角|现代软件编程语言的发展、分类及现状
文章图片
可以看的出来 , 机器语言的编码过程可以说是非常的不人道 。 不宜辨识、不宜理解 , 不容易纠错 , 算是其最大的特点了吧 。 于是 , 软件编程语言水到渠成的发展到了第二阶段 , 即汇编语言 。 汇编语言的出现 , 就是为了解决机器语言的缺点 , 增加机器语言的可识别性 。 说白了 , 就是用一些容易理解和记忆的字母 , 单词来代替一个特定的指令 , 比如:用“ADD”代表数字逻辑上的加减 。
从编程语言的发展可以看的出来 , 机器是不能直接识别汇编语言 , 从而按照其逻辑进行运算的 。 因此顺理成章的出现了现代软件编程系统至关重要的概念——编译器 。 简单讲 , 编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序 。
梦想视角|现代软件编程语言的发展、分类及现状
文章图片
一个现代编译器的主要工作流程是:源代码(sourcecode)→预处理器(preprocessor)→编译器(compiler)→目标代码(objectcode)→连接器(Linker)→可执行程序(executables) 。 源代码可以理解为汇编语言或更高级的语言 , 而编译器的处理结果——可执行程序就是机器可以识别的机器语言 。
由于汇编语言还是过于阳春白雪 , 既然有了编译器这样一件神器 , 软件编程语言的春天终于来到了 。 真正的高级编程语言开始出现 , 并且呈现了快速井喷的发展趋势 。 编程语言这一概念也终于落到了实处 。
最早的高级语言大约诞生于1945年 , 是德国工程师康拉德·楚泽为他的Z-4计算机设计的PlanCalcul , 比第一台电子计算机还早几个月;在电子计算机上实现的第一个高级语言是美国尤尼法克公司于1952年研制成功的ShortCode;而真正得到推广使用 , 至今仍在流行的第一个高级语言是美国的计算机科学家巴科斯设计 , 并于1956年首先在IBM公司的计算机上实现的FORTRAN语言 。


推荐阅读