编程语言发展史---沈桂松2018-07编程语言编程语言(programminglanguage),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。编程语言历史•低级语言时代•高级语言时代•面向对象时代低级语言时代(1946—1953)1.天书---机器语言程序员们将用0,1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,光电阅读机将记录在穿孔卡片上数据读入计算机,计算的结果则利用打孔机在卡片上打出的一些小孔,就表示输出的数据。卡片上的小孔就组成了计算机和专家明白但绝大多数人不明白的天书——机器语言,也就是完全用0,1代码写的程序。2.汇编语言由于机器语言的难易理解,莫奇莱等人开始想到用助记符来代替0,1代码,于是汇编语言出现了高级语言时代(1954—至今)随着世界上第一个高级语言fortran的出现,新的编程语言开始不断涌现出来。各有特色,各有优势,随着时间的检验,一些流行至今,一些则逐渐消失python1.第一个高级语言----fortran1951年:美国IBM公司约翰·贝克斯(JohnBackus)针对汇编语言的缺点着手研究开发FORTRAN语言。1954年:约翰·贝克斯在纽约正式对外发布,称为FORTRANⅠ,FORTRANⅠ功能简单,但它的开创性工作,在社会上引起了极大的反响。1957年:第一个FORTRAN编译器在IBM704计算机上实现,并首次成功运行了FORTRAN程序。2.第一个结构化程序设计语言---ALGOLALGOL《[美['ælɡɔ:l]》是算法语言(ALGOrithmicLanguage)的简称,是在计算机发展史上首批清晰定义的高级语言,由欧美计算机学家合力所组成的联席大会于仍是晶体管计算机流行的1950年代所开发国际计算机学会(ACM)将ALGOL模式列为算法描述的标准,启发ALGOL类现代语言Pascal、Ada、C语言等出现。由于ALGOL语句和普通语言表达式接近,更适于数值计算,所以ALGOL多用于科学计算机3.最简单的语言---BASIC1964年BASIC语言正式发布。是由达特茅斯学院院长、匈牙利人约翰·凯梅尼(JohnG.Kemeny)与数学系教师托马斯·卡茨(ThomasE.Kurtz)共同研制出来的。第一个BASIC程序在1964年5月1日早上4时,由BASIC编译程序进行编译后成功运行。该语言只有26个变量名,,17条语句,12个函数和3个命令这门语言叫做“初学者通用符号指令代码”—BeginnersAllpurposeSymbolicIntructionCode4.编程语言里一个重要的里程碑---PascalPascal《美['pæskl]》基于ALGOL编程语言,为纪念法国数学家、哲学家、电脑先驱布莱兹·帕斯卡而命名。它由瑞士NiklausWirth教授于六十年代末设计并创立的。Pascal主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强,可以被方便地用于描述各种算法与数据结构有益于培养良好的程序设计风格和习惯Pascal是一个重要的里程碑结构化程序设计概念的语言5.现代程序语言革命的起点---C20世纪60年代,美国AT&T公司贝尔实验室(AT&TBellLaboratory)的研究员KenThompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——SpaceTravel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。1970年,美国贝尔实验室的KenThompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。1971年,同样酷爱SpaceTravel的DennisM.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。面向对象时代(90年代初—至今)面向对象程序设计(Object-OrientedProgramming,简称OOP)是一种起源于六十年代的Simula语言,发展已经将近三十年的程序设计思想。其自身理论已经十分完善,并被多种面向对象程序设计语言实现。常见的面向对象编程语言•VB—Basic的继续•Delphi—Pascal的继续•C++—C语言扩展•VC++•BorlandC++Builder•Qt•Java—最为流行的面向对象语言•C#—新一代的面向对象语言python2018年6月编程语言排行榜TIOBEIndexforJune20181.JavaJava是由SunMicrosystems于1995年推出的高级编程语言。Java之父——詹姆斯·高斯林。Java目前霸占着企业级应用市场,一部分移动开发(J2ME)和web开发,但是Java在客户端的图形接口方面失败连连,从Applet、AWT到Swing,Java似乎一直无法为客户端提供堪用的解决方案,以致不断败退,造成了目前在客户端使用Java应用程序的应用系统仍然非常稀少。——使用者排名第一2、C和C++仍然是嵌入式开发和系统给开发的利器。操作系统、驱动程序、各种游戏大都是他们的开发的——地位不可替代3、C#用来做WEB、桌面、控制台等程序都可以,和java类似。——迅速崛起4、VB、delphi擅长于快速的桌面程序开发,数据库开发,例如进销存软件——逐渐下滑5、其他:perl、python、ruby,jsp,javascript,php等等也占据了一定的市场•动态化计算机能够处理的事交给计算机处理•声明式及函数式编程风格告诉计算机What而不是How•并发编程多核时代的必然要求观点来自AndersHejlsberg《编程语言的发展趋势及未来方向》的讲座总体向支持动态、声明式、并发支持,易于使用的多范式语言发展。一些语言会同时支持面向对象、面向过程、动态、声明、函数式以及并发编程。•未来计算机编程语言特点作为一名准码农值得我们关注的一些编程语言动态语言(脚本语言)•python•ruby•perl•groovy•scala•lua作为一名准码农值得我们关注的一些编程语言•纯函数式语言•haskell•F#•lisp•scheme作为一名准码农值得我们关注的一些编程语言•支持函数式编程的语言scalapython•适合儿童使用的编程语言LOGO语言Scratch语言作为一名中国准码农也有必要了解一下中文编程语言•中文编程语言易语言丙正正习语言Peryuyan最后给大家在编程之路的几点建议•精通一两门面向(过程)对象语言C/C++、Java、C#•掌握一两门动态脚本语言python、ruby、lua•学习了解一两门支持函数式编程的语言haskell、F#、scala