计算机编程语言的发展史
- 格式:pdf
- 大小:133.52 KB
- 文档页数:2
计算机编程语⾔的发展史
计算机编程语⾔的发展史1940s,产⽣了真正意义上的电⼦计算机,这个时期的语⾔由于内存和计算能⼒的有限,都是使⽤硬件相关的汇编语⾔;
1950s~1960s,随着电⼦技术的进步,计算机进⼊⼤型机时代,⼀些⾼级语⾔被逐渐开发出来主要⽤于系统级编程和数学计算,
Fortran(1950s由IBM团队发明的数学计算语⾔),
COBOL(1950s由IBM等⾏业领袖推⾏的⾦融、商务系统开发语⾔),
LISP(⽤于⼈⼯智能领域,主要的数据结构是Linked List,全名为List Process语⾔,引⼊了很多先进的特性如递归、动态类型、⾃动内存管理等特性)ALGOL(⽤于算法描述、学术领域,引⼊嵌套结构,语法范围等,很⼤的影响了BPCL,B,PASCAL等语⾔
Basic(最早是为给⾮科学领域的学⽣所编写,Microsoft VB的前⾝)
1970s,产⽣了C语⾔和⼀些早期的⾯向对象编程语⾔
C(1970s由Dennis Ritchie和Brian Kernighan发明的为DEC机开发的系统编程语⾔,前⾝是BPCL,B语⾔)
Simula(第⼀个⽀持⾯向对象的编程语⾔)
SmallTalk(第⼀个完整实现⾯向对象特性的编程语⾔)
1980s,向PC时代过渡,语⾔特性的合并、优化、发展
C++(综合了SmallTalk⾯向对象特性和C语⾔语法,最为⼴泛应⽤的⾯向对象语⾔之⼀)
机器语⾔--->汇编语⾔-->⾼级计算机语⾔ 机器语⾔:最初的计算机所使⽤的是由“0”和“1”组成的⼆进制数,⼆进制是计算机的语⾔的基础。计算机发明之初,计算机只能被少部分⼈使⽤,⼈ 们需要⽤0、1组成的指令序列交由计算机执⾏,对于机器语⾔的使⽤与普及都是很令⼈头疼的问题。对于程序的移植能⼒⼏乎没有,从⽽时间成本,⼈⼒成本⼗分昂贵。但机器语⾔也不是没有优势,由于这种语⾔是直接对计算机硬件进⾏操作,所以在特定型号的计算机上⾯,运算效率也是很⾼的,机器语⾔的出 现对于未来的计算机语⾔发展起到了很好的推动作⽤,所以机器语⾔也是第⼀代计算机语⾔。
汇编语⾔:汇编语⾔是在机器语⾔的基础上诞⽣的⼀门语⾔,⽤⼀些简洁的英⽂字母、符号串来替代⼀个特定的指令的⼆进制串,这也提⾼了语⾔的记忆性和识别性。对于程序的开发与维护起到了积极作⽤。汇编语⾔同样也是直接对硬件进⾏操作,这样依然局限了它的移植性。但是使⽤汇编语⾔针对计算机特定硬件⽽编制的汇编语⾔程序,对于计算机硬件的功能和特长的发挥已有了很⼤进步,它精炼⽽质量⾼,所以⾄今仍是⼀种常⽤的程序开发语⾔。
⾼级计算机语⾔:在与计算机的不断交流中,⼈们对计算机程序的移植性需求不断提⾼,此时急需要⼀种不依赖于特定型号的计算机的语⾔,⽤这种语⾔编写的程序能在在各种平台都正常运⾏。从最初的语⾔诞⽣⾄今,已经相继出现了⼏百种语⾔。⾼级语⾔的发展也从最初的结构化语⾔发展成为⾯向过程语⾔设计和⾯向对象语⾔设计。⾯向过程语⾔设计的代表有:C语⾔,Fortran,cobol,pascal,ada等等⼀系列语⾔,⽽⾯向对象语⾔设计的代表则为:java, c++,c#等。对于⾯向过程的程序来说,执⾏顺序是流⽔线似的,在⼀个模块被执⾏完成前,⼈们不能⼲别的事,也⽆法动态地改变程序的执⾏⽅向,这恰恰与⼈们的⽇常处理事情的⽅式相⽭盾。⽽对于⾯相对象的程序设计来说,很好的将事物象的部分抽取归类,各个累与模块之间能相互组合,完成特定的功能,同时⼜能重复使⽤。对使⽤者的技术要求也相对降低。MATLAB(⼯业领域,⼯程计算语⾔)
Objective-C(iOS编程语⾔,已经是Top5的语⾔之⼀)
Erlang(多重范式编程语⾔,函数式、并发式、分布式,80年代由爱⽴信发明⽤于通信⽹络编程,现已⼴泛应⽤于互联⽹⾼并发分布式计算领域,最有名的作品包括CouchDB/RabbitMQ)Perl(源于Unix脚本的动态语⾔,初衷是为了使报告更容易处理,借鉴了C/sh/AWK和SED)
Tcl(曾经是很流⾏的测试脚本语⾔,现在已经没落)
1990s,PC时代,互联⽹时代萌芽,产⽣了很多动态语⾔和可视化编程集成环境IDE
Windows由于垄断PC市场,其基于VC/VB的桌⾯应⽤开发曾经是客户端开发技术的主流,
随之⽽来催⽣了⼤量的基于Windows SDK客户端应⽤,MFC是其中最为知名的⼀个C++类库实现Python/Ruby/Lua/PHP/JS
Java(发展为3个体系,J2SE/J2EE/J2ME,J2EE包含⼀些企业特性如JDBC, JPA, JTA/JMS/EJB,J2ME是移动版本)
Visual Basic/Visual C++/Delphi(Object Pascal)/Power BuilderJavascript(浏览器客户端脚本,Netscape发明,包含ECMAScript核⼼脚本, DOM⽂档对象模型, BOM浏览器对象模型三部分)
2000s~现在, 互联⽹/移动互联⽹时代,C/S模式进化为B/S模式,Java/PHP/.Net⼤⾏其道,并⾏计算/分布式计算越来越重要
ActionScript(Adobe公司发明,⾯向对象的Flash开发语⾔)
C#/Visual Basic.Net
Groovy(由VMVare⽀持,基于Java平台的动态语⾔,⽀持元数据编程Metaprogramming,动态扩展对象数据,如反射,
还⽐如范型编程(如C++的STL,最早版本由HP实现)能为语⾔提供运⾏时再确定的动态类型特性,可以⼤⼤简化编码)Go (C语⾔之⽗发明的并⾏计算语⾔)
Node.js(服务器端的JS运⾏环境,Js语⾔在服务器端的延伸,具有单线程,⾼并发的特性)