软件编程语言的发展,是随着硬件技术的不断进步而逐步发展起来的。从最初的机器语言,发展到助记符式的汇编语言,再到今天还在不断完善中的高级语言,其使用是越来越广泛,所起的作用也是越来越重要。
软件编程语言的第一阶段,即机器语言,严格来说,不算真正意义上的编程语言。机器语言对硬件的依赖程度太大,基本上被绑定到某种类型的机器设备上了,比如最早可用于机器语言设计的被称之为现代电子计算机的前身的分析机。从某种程度上说,早期的所谓机器语言,也就是根据设备的制作目的,将解决某一问题的逻辑顺序,在设备上依次实现,得出预想的结果而已。和结构化编程的一段代码类似,可以说一个设备就是一段结构化程序的物理实现。
后期随着相关理论及硬件技术的发展,编程语言的相关概念被逐渐提出并实现,推进了机器语言的演化。比如世界上首位程序员——阿达·洛芙莱斯在计算机软件领域做出的许多开创性的贡献:如变量、递归、程序算法的提出等(详见软件世界的缘起及现代编程语言的诞生,程序员群体有一位老祖母)。
而随着晶体管、电子管等硬件技术的发展,摩根定律、布尔代数等数学理论的完善,最终在计算机发展中出现了寄存器、二进制算法等概念和理论,推进了机器代码的标准化,即基于“0/1”或者说“是/否”基础的现代机器语言。
寄存器从硬件实现上来说,可以理解为一个电容器,其储电和放电的状态就可以分别表示“0”或者“1”,据此可以完美的实现机器语言的相关功能。寄存器最起码具备四种功能,即清除、存储、接收、输出。而机器语言通过“0/1”进行编写,通过寄存器进行存储及相关运算,从而实现了编程过程。
可以看的出来,机器语言的编码过程可以说是非常的不人道。不宜辨识、不宜理解,不容易纠错,算是其最大的特点了吧。于是,软件编程语言水到渠成的发展到了第二阶段,即汇编语言。汇编语言的出现,就是为了解决机器语言的缺点,增加机器语言的可识别性。说白了,就是用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减。
从编程语言的发展可以看的出来,机器是不能直接识别汇编语言,从而按照其逻辑进行运算的。因此顺理成章的出现了现代软件编程系统至关重要的概念——编译器。简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。
一个现代编译器的主要工作流程是:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 连接器 (Linker) → 可执行程序 (executables)。源代码可以理解为汇编语言或更高级的语言,而编译器的处理结果——可执行程序就是机器可以识别的机器语言。
由于汇编语言还是过于阳春白雪,既然有了编译器这样一件神器,软件编程语言的春天终于来到了。真正的高级编程语言开始出现,并且呈现了快速井喷的发展趋势。编程语言这一概念也终于落到了实处。
最早的高级语言大约诞生于1945年,是德国工程师康拉德·楚泽为他的Z-4计算机设计的Plan Calcul,比第一台电子计算机还早几个月;在电子计算机上实现的第一个高级语言是美国尤尼法克公司于1952年研制成功的ShortCode;而真正得到推广使用,至今仍在流行的第一个高级语言是美国的计算机科学家巴科斯设计,并于1956年首先在IBM公司的计算机上实现的FORTRAN语言。
早期的高级语言主要是应用于科学和工程计算,其代表作有FORTRAN和ALGOL60。计算机进入商业和行政管理领域以后,出现了COBOL和 RPG等便于商界使用的语言。上世纪七十年代以来,这类语言和数据库技术,图形界面技术(可视化编程),面向对象的思想及RAD(Rapid Application Devolopment)的概念相结合,形成了一批更方便使用的所谓第四代语言(4GL),如Powerbuilder,Delphi,VB等。
在这一时期的高级编程语言的主要设计,还是基于结构化编程的架构,简单说就是按照解决问题的步骤顺序执行,当然,对于编程过程中的相关概念已完全成熟并被深入应用,比如函数、过程、递归、循环等等。而OO(面向对象)的概念也已出现,预示着下一个发展阶段的到来。
上世纪八十年代后期,面向对象的语言开始浮出水面,C++借助使用C语言的庞大程序员队伍,一举建立了面向对象语言的老大地位。从而OO的思想正式统治了整个软件开发界。
而随着上世纪九十年代后期互联网泡沫的兴起,原先的单机平台开始让位于WEB(网络浏览器),软件架构也从C/S(客户端/服务器)模式向B/S(浏览器/服务器)模式转变,“网络就是计算机”,新的语言不仅要是OO的,可视化的,更要是基于WEB的。
在此时期,Java语言借INTERNET(互联网)的东风,横空出世,一夜红遍天下。在本世纪初,微软也针对Java语言推出了.Net语言族(其中主流语言主要是C#),借助其Windows系统平台的广泛应用,延续其Visual Studio开发套件的生命力。
对于Java 、C#、VB等高级语言而言,其运行转换过程为编译器完成把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,变成最终可以被CPU直接计算的机器码(NativeCode)。
当前的软件世界,编程语言已经百花齐放,有通用编程语言,有专注于某一领域的编程语言。数十年来,全世界涌现了2500种以上高级语言,一些流行至今,一些则逐渐消失。下面看看当前编程语言的TOP 10排行榜,来自网络,可能不够专业,但却反映了当下软件编程世界对于高级编程语言的运用及认可。
TOP1:JavaScript:是轻量级的,可解释的,并且在前端开发中起着重要作用的一门语言
TOP2:Python:语法清晰,直观并且几乎类似于英语,是通用的,用户友好的编程语言之一
TOP3:Java:面向对象,具有高度的跨平台兼容性或平台无关性
TOP4:C / C++:C语言的高效是其他高级语言难以比拟的,C++是基于C发展出来的面向对象语言
TOP5:PHP:代表超文本预处理器,是一种通用编程语言,也是一种脚本语言,目前已占据了全球83%的网站
TOP6:Swift:是苹果公司开发的一种通用、开放源代码的、已编译的编程语言,类似于自然的英语
TOP7:C#(C-sharp):面向对象的编程语言,用于开发桌面或服务端应用程序,并且需要.NET框架来运行
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有