计算机程序语言发展史及未来发展趋势

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机编程语言发展概况技术中心弓江涛2012/10/26关于我Aboutme弓江涛(@henan100.com网站架构师技术总监)技术管理–10个月门户网站架构–四年半WEB系统开发–六年接触互联网–十一年微博:目录计算机程序语言发展史各种程序语言的特点互联网的发展趋势程序员如何做好职业规划?计算机程序语言发展史问:计算机出现以来,总共出现过多少编程语言?答案:2500+1614—1945年间1614年苏格兰人JohnNapier提出了用机器计算的理论此后300多年的时间,人们制作了许多各式各样的计算机器,原始而又笨拙。这个时期没有真正意义上的计算机,当然,也没有任何编程语言的存在第一台电子计算机在第二次世界大战后,弹道计算日益复杂,迫切需要有一种新的快速的计算工具。这样,在一些科学家、工程师的努力下,在当时电子技术已显示出具有记数、计算、传输、存储控制等功能的基础上,电子计算机就应运而生了。世界上第一台电子计算机命名为埃尼阿克,是1946年美国宾夕法尼亚大学埃克特等人研制成功的。它装有18000多只电子管和大量的电阻、电容,第一次用电子线路实现运算。埃尼阿克每秒能做5000次加法,或者400次乘法。如果用当时最快的机电式计算机做40点弹道计算,需要两小时,而埃尼阿克只要3秒钟,这在当时,的确已是很了不起的成绩。计算机语言演变机器语言•卡片上穿孔代表01记录数据汇编语言•莫奇莱等人用助记符来代替01高级语言•1957:第一个高级语言fortran结构化•1960:ALGOL:第一个结构化程序设计语言推出普及化•1964:最简单的语言,适用普通程序员书写编译器之争代码编译器机器语言borland技高一筹,占领了大部分市场份额1995年开启面向对象时代面向对象程序设计简称OOPObject-OrientedProgrammingOOP唯一性抽象性继承性多态性每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。第二回合:IDE之争代码编辑器编译器调试器图形界面各种插件集成开发环境IDE(IntegratedDevelopEnvironment)第二回合:几个典型的IDE案例VisualBasicpascalVisualC++微软开始版本完全败给了borland但是后续版本逐渐赢回了市场份额。太阳的光辉-Java就在VB和delphi难解难分的时候,以生产服务器和工作站为主的SUN公司无意中开发的java语言随着网络的普及迅速发展起来。Symantec的VisualCafeMicorsoft的VJ++Sun的SUNWorkshopIBM的VisualageforJavaBorland的JBuilder日食–eclipse简介:Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,支持Java开发、C开发、插件开发,它提供建造块和构造并运行集成软件开发工具的基础微软的反击-.net2000年,微软启动.NET战略,其目标是希望帮助用户,能够在任何时候、任何地方、利用任何工具都可以获得网络上的信息,并享受网络通信所带来的快乐。C#充分借鉴了C和java的语言,甚至照搬了C的部分语法几乎集中了所有关于软件开发和软件工程研究的最新成果。面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……但是:C#程序需要.NET运行库作为基础各种程序语言的特点Pascal的主要特点有:严格的结构化形式、丰富完备的数据类型、运行效率高、查错能力强等特点。由于上述特点,Pascal可以方便用于描述各种算法和数据结构。对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一。NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的数学语言。C语言特点:1.是一种结构化语言。层次清晰,便于按模块化方式组织程序,易于调试和维护。2.C语言的表现能力和处理能力极强。不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。3.由于C语言实现对硬件的编程操作,所以既可用于系统软件的开发,也适合于应用软件的开发。C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类计算机上,从而形成了多种版本的C语言。4.由于C语言允许直接对位、字节和地址进行操作,能实现汇编语言的大部分功能。5.目标代码质量高,程序执行效率高。各种程序语言的特点C++的特点:面向对象、继承、封装、多态性。由于C++是C的扩展,所以也具有C的特点。C++在C的基础上,加入了面向对象编程思想,也就决定了C++的效率在某一方面是不如C的。比如定义一种类型,C++用类(Class)来封装,而C可能就直接几个变量的组合就成了一个结构体(Struct),类不仅具有成员变量,还具有成员函数等,在精细的比较其效率时,C会比C++的效率要高。但由于时代的发展,项目或工程的庞大化,基于面向对象的思想显然更能适应。即C++在这方面能比C要做得更漂亮。现在不少系统级编程都是用C++实现,许多应用级别的软件也是用C++实现。C++在C的基础上,加入了面向对象编程思想,也就决定了C++的效率在某一方面是不如C的。比如定义一种类型,C++用类(Class)来封装,而C可能就直接几个变量的组合就成了一个结构体(Struct),类不仅具有成员变量,还具有成员函数等,在精细的比较其效率时,C会比C++的效率要高。但由于时代的发展,项目或工程的庞大化,基于面向对象的思想显然更能适应。即C++在这方面能比C要做得更漂亮。现在不少系统级编程都是用C++实现,许多应用级别的软件也是用C++实现。各种程序语言的特点Java的特点:1.简单性:风格类似于C++,Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。2.面向对象:Java是一种完全面向对象语言。从这点来看,Java类似于SmallTalk,但其特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。3.分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。4.健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。5.结构中立:Java将程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都执行这种中间代码。这种中间语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。6.安全:1)删除了香指针和手动释放内存等功能,避免了非法内存操作。2)当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来。Java在机器上执行前,要经过很多测试,它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。各种程序语言的特点7.可移植的:同体系结构无关的特性使得Java应用程序可以在配备Java解释器和运行环境的任何计算机系统上运行。任何Java代码会被解释成一种中间语言,然后通过不同机子的特定环境(如机器指令)运行程序。实现方便移植的特点。8.解释性。Java解释器能直接运行目标代码指令。链接程序通常比编译程序所需资源少。9.高性能。如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。10.多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带来的更大好处是更好的交互性能和实时控制性能。11.动态:动态特性允许程序动态地装入运行过程中所需要的类。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。各种程序语言的特点C#是一种精确、简单、类型安全、面向对象的语言。说到C#,就不得不先简单介绍一下.net。到底什么是.net呢,按照微软总裁兼首席执行官SteveBallrner把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。C#是.net的代表语言。C#的特点:1.完全面向对象。2.支持分布式,之所以有C#,是因为微软相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器上。所以C#一出生就注定了能很好解决分布式问题。3.跟Java类似,C#代码经过编译后,成为了一种IL(中间语言)。在运行时,再把IL编译为平台专用的代码。4.健壮,C#在检查程序错误和编译与运行时错误一点也不逊于Java,C#也用了自动管理内存机制。各种程序语言的特点5.C#不像Java那样完全摒弃了指针和手动内存管理。C#默认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。6.安全性:C#的安全性是有.net平台来提供的。C#代码编译后成为IL语言。是一种受控代码,.net提供类型安全检查等机制保证代码是安全的。7.可移植性:由于C#使用类似Java的中间语言机制。使得C#也跟Java类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。8.解释性:C#也是一种特殊的解释性语言。9.高性能:C#把代码编译成中间语言后,可以高效的执行程序。10.多线程:与Java类似,可以由一个主进程分出多个执行小任务的多线程。11.组件模式:C#很适合组件开发。各个组件可以由其他语言实现的,然后集成在.net中。各种程序语言的特点Python(KK英语发音:/'paɪθɑn/,DJ英语发音:/ˈpaiθən/)是一种面向对象、直译式计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。易学:Python极其容易上手,因为Python有极其简单的语法。免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、PalmOS、QNX、VMS、Psion、A

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功