计算机程序设计语言.pptx

上传人:wuy****n92 文档编号:77653939 上传时间:2023-03-16 格式:PPTX 页数:41 大小:1,016.47KB
返回 下载 相关 举报
计算机程序设计语言.pptx_第1页
第1页 / 共41页
计算机程序设计语言.pptx_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《计算机程序设计语言.pptx》由会员分享,可在线阅读,更多相关《计算机程序设计语言.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机程序设计语言发展与比较郭东伟吉林大学2010年3月18日by skywind1目录l程序设计语言的发展史l不同类型的程序设计语言l当前流行语言分析国际上国内l语言间的对比C+vs Javaby skywind计算机语言l用于人与计算机之间交互的语言。是人与计算机之间传递信息的媒介。程序设计语言l低级语言l高级语言l专用语言命令语言l作业控制语言lSQL描述语言lHTML、XML2by skywind3编程语言分类l低级语言-汇编语言l函数式程序设计语言l逻辑程序设计语言l通用程序设计语言面向过程的程序设计语言面向对象的程序设计语言by skywind4计算机编程语言谱系图by skywi

2、nd5古典时代lFORTRAN第一个高级语言,主要用于科学计算lALGOL58/ALGOL60严谨的现代语言的鼻祖之一在20年间,成为出版刊物中的唯一语言主要贡献:BNF没有得到广泛实际应用lCOBOL商务记录处理by skywind6中世纪-1:过程化语言逐渐成熟lBASIC(1963)第一个结合分时操作,简单易学的语言lPL/1IBM为主设计的一个通用语言结合ALGOL,FORTRAN,COBOL既一些其他新特性的通用语言第一次提出:并发机制、异常处理、过程化递归、指针过于复杂,部分成功lAda历史上最大规模的语言设计(美国军方)by skywind7中世纪-2:ALGOL的后继lPasc

3、al成功的教学语言DelphilC语言与unix共同成长简单、高效、相信程序员目前系统级程序设计首选语言by skywind8工业时代的开始lSIMULA67数据抽象的开始,第一次提出classlSmalltalk真正的面向对象程序设计语言(数据抽象、基础和动态绑定)图形化的交互语言(系统)l特点万物皆对象,包括控制流使用消息在对象间通信by skywind9工业时代lC+继承了C语言的灵活特征仍然强调效率从Eiffel到D语言lJava从嵌入式编程过渡到web应用更加严谨的面向对象机制lC#与微软的dot net紧密结合by skywind10后工业时代l脚本语言unix系统脚本语言Perl

4、、Python、Ruby、Lual动态类型语言lWEB服务器开发语言JSPPHPASPlWEB页面端开发语言Javascriptby skywind几种现代流行语言谱系11C语言C+JavaC#VBAspJSPPHPPythonPerlRubyPascalDelphiObjective-CJavaScriptBasicby skywind12函数式程序设计语言lLispLogo、Scheme、Common LisplLisp特点万物皆函数基本数据结构:表基本控制流程:递归解释语言主要用于人工智能,也可用于各种其他用途by skywind13逻辑程序设计语言lProlog1970s在1980s日

5、本人工智能计划时得到关注l特点基于谓词演算,给出事实和规则实现定理证明只需要说明问题,无需指定流程lSQL在一定程度也有这种特点by skywind过程式语言的基本特征l变量、作用域和生存期l数据类型(记录和指针)l表达式与赋值语句l控制流(Goto is harmful)l子程序与递归l异常处理14by skywind15解释性语言 vs.编译性语言l执行流程l性能目前计算机硬件的发展使得解释程序的性能代价在很多场合可以忽略l跨平台性:解释程序与虚拟机l灵活性自解释运行时修改、创建程序自执行l目前解释性语言的应用比例逐渐提高目前解释性语言的应用比例逐渐提高by skywind静态类型语言 v

6、s.动态类型语言l变量的数据类型是在运行前静态确定的,还是运行时动态确定的,称之为静态类型语言(Statically Typed Languages)和动态类型语言(Dynamically Typed Languages)l动态类型语言具有更大的灵活性,很适于写出通用程序。而静态类型语言很难做到这一点(如C语言中void*和C+中的模板)。l 动态类型的缺点在于发现错误的能力较差、运行代价高l包括面向对象中的多态类的判定。16by skywind动态语言l一类在运行时可以改变其结构的语言:例如可以动态执行生成的代码,产生新的函数、对象定义、已有的函数可以被删除或是其他结构上的变化等。lECMA

7、Script(JavaScript)是一个动态语言的代表,除此之外如PHP、Ruby、Python等也都属于动态语言。l动态语言是一种可“自创造”的语言,典型的都有eval这样的语法要素。17by skywind关于类型的几个概念l动态语言大部分是动态类型语言l动态语言和大部分动态类型语言都是解释执行的,但解释语言不一定是动态语言(Basic),也不一定是动态类型语言(Java)。l静态类型语言可以是“强类型的”或是“弱类型的”l可以在兼容类型(包括类)之间进行隐含的或显式的类型转换,部分语言可以进行强制类型转换。18by skywind19脚本语言l介于文本描述语言(HTML等)和高级编程语

8、言之间l一般都以文本形式存在,类似于一种命令最简单的脚本语言就是配置文件l执行过程脚本语言是一种解释性的语言脚本语言一般都有相应的脚本引擎来解释执行 脚本语言主要指该语言面向的开发环境,脚本语言一般局限在某一个特定环境。l编程语言的语法和规则更为严格和复杂,脚本语言相对灵活by skywind语言关注情况排名PositionMar 2009PositionMar 2008Programming LanguageRatingsMar 2009DeltaMar 2008Status11Java19.797%-1.69%A22C15.862%+1.00%A35C+10.357%+1.08%A44PH

9、P9.485%-0.41%A53(Visual)Basic8.285%-3.32%A67Python5.185%+0.42%A78C#4.321%-0.19%A810JavaScript3.607%+1.27%A96Perl3.419%-2.79%A109Delphi2.710%-0.09%A1111Ruby2.601%+0.74%A1212D1.809%+0.62%A1313PL/SQL1.042%+0.06%A1422Logo0.964%+0.65%A-1514SAS0.796%-0.15%A1617Pascal0.733%+0.29%A-1729ABAP0.638%+0.49%B1826

10、RPG(OS/400)0.585%+0.41%B1921ActionScript0.481%+0.17%B2018Lua0.480%+0.09%B资料来源:主要依据:搜索引擎by skywind21语言关注情况分析by skywind2011年趋势22by skywind23一些其他比较数据 CategoryRatings March 2009Delta March 2008Object-Oriented Languages 55.9%+1.2%Procedural Languages 39.7%-2.9%Functional Languages 3.3%+1.5%Logical Langua

11、ges 1.1%+0.1%YearWinner2008 C 2007 Python 2006 Ruby 2005 Java 2004 PHP 2003 C+CategoryRatings March 2009Delta March 2008Statically Typed Languages 59.2%+2.2%Dynamically Typed Languages 40.8%-2.2%by skywind24一点分析lJava,C/C+始终占据主要地位,但略有下降lVB,C#不温不火,特别是C#,没有达到期望的使用率lPerl、Python、PHP保持前列地位,但Perl有所下滑(相对古老)

12、l一些新兴语言,如Ruby、Lua尚不能取得领先地位by skywind25CSDN中国IT技术指数报告l数据来源如下(2008.7):*特定时段内新出现在主要IT专业网站上的相关网页数量*特定时段内互联网上新张贴的相关论坛贴子和博客文章数量*特定时段内相关互联网搜索数量*特定时段内相关工作职位招聘规模*特定时段内相关图书销售量by skywind262008年6月中国地区计算机语言指数 排名排名语言语言指数得分指数得分对比对比评级评级1Java226324.9%*2C/C+143615.1%*注:其中Visual C+4324.5%-3PHP8929.4%*4Javascript8919.4

13、%*5SQL8919.4%*6C#8629.1%*7CSS6226.5%*8Visual BASIC3804.0%*9UML2742.9%*10Perl2142.3%*11Ruby2112.2%*12Delphi1771.9%*13Python1521.6%*14ActionScript1391.5%*by skywind27说明与注解lJava处于全盛时代 lC/C+稳居主流lPHP、Javascript、CSS进步显著 lC#、VB亟待驱动 l SQL与UML对比鲜明 l动态语言仍然囿于小众 lDelphi与ActionScript:夕阳与朝阳 by skywind28Web相关技术-服务

14、器端排名技术指数得分对比评级1ASP.NET103337.0%*2PHP85330.6%*3Java based78628.2%*4Ruby on Rails843.0%*5Python based190.7%*6Perl based160.6*by skywind29说明与注解lWeb服务端三足鼎立,RoR雷声大雨点小第一代:CGI 第二代:PHP、JSP、ASPlPHP:快捷灵活高效,低成本,国内以个人爱好和高性能网站开发为主。lJSP:结构严谨,适合于企业级的B/S模式的管理系统,难以迎合时尚网站多变的需求。lASP:简单易学,在国内的占有率远高于国际。适合简单、多变的网站开发。第三代:

15、以Ruby on Rails为代表的第三代 lAjax仍据主流,新RIA技术奋起直追 by skywind30基础软件设施-服务器OSby skywind31基础软件设施-数据库by skywind32基础软件设施-移动操作系统移动操作系统by skywind33JavaEE应用服务器及应用服务器及SAPby skywind不同类型的应用软件开发和语言选择l工业控制、嵌入式开发l系统软件开发:操作系统、数据库l通用桌面应用软件l信息管理系统C/S模式B/S模式l互联网应用l游戏和娱乐l专用软件34by skywind35语言对比:C+vs Javal速度与性能l指针与句柄l对象处理机制根类Ob

16、ject运算符重载多继承与接口不同的绑定方式l自动垃圾收集与析构器l名字空间封装by skywind36更加健壮的Javal增强的异常处理机制l数组下标检查l内置多线程支持l没有显式的指针,不能进行强制类型转换l自动初始化变量by skywind37高效的C/C+l灵活的结构化语言机制(goto,union)lInline函数l静态绑定和动态绑定l简单的栈数据对象l基于模板的程序设计方法by skywind38应用范围l通用编程语言lC/C+更加适合系统开发嵌入式开发执行效率严格要求的软件lJava更加适合跨平台开发网络程序设计by skywind程序员需要会多少种语言?l理解一种汇编语言l熟练掌握一门过程化语言l熟练掌握一门面向对象语言l掌握一门动态语言l能够使用一种脚本语言39by skywind40

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁