1-计算机程序设计语言ppt课件_第1页
1-计算机程序设计语言ppt课件_第2页
1-计算机程序设计语言ppt课件_第3页
1-计算机程序设计语言ppt课件_第4页
1-计算机程序设计语言ppt课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、的语言设计美国军方)by skywind7中世纪-2: ALGOL的后继lPascall成功的教学语言lDelphilC语言l与unix共同成长l简单、高效、相信程序员l目前系统级程序设计首选语言by skywind8工业时代的开始lSIMULA67l数据抽象的开始,第一次提出classlSmalltalkl真正的面向对象程序设计语言数据抽象、基础和动态绑定)l图形化的交互语言系统)l特点l万物皆对象,包括控制流l使用消息在对象间通信by skywind9工业时代lC+l继承了C语言的灵活特征l仍然强调效率l从Eiffel到D语言lJaval从嵌入式编程过渡到web应用l更加严谨的面向对象机制

4、lC#l与微软的dot net紧密结合by skywind10后工业时代l脚本语言lunix系统脚本语言lPerl、Python、Ruby、Lual动态类型语言lWEB服务器开发语言lJSPlPHPlASPlWEB页面端开发语言lJavascriptby skywind几种现代流行语言谱系11C语言C+JavaC#VBAspJSPPHPPythonPerlRubyPascalDelphiObjective-CJavaScriptAsp.NETBasicby skywind12函数式程序设计语言lLisplLogo、Scheme、Common LisplLisp特点l万物皆函数l基本数据结构:表

5、l基本控制流程:递归l解释语言l主要用于人工智能,也可用于各种其他用途by skywind13逻辑程序设计语言lPrologl1970sl在1980s日本人工智能计划时得到关注l特点l基于谓词演算,给出事实和规则l实现定理证明l只需要说明问题,无需指定流程lSQL在一定程度也有这种特点by skywind过程式语言的基本特征l变量、作用域和生存期l数据类型记录和指针)l表达式与赋值语句l控制流Goto is harmful)l子程序与递归l异常处理14by skywind15解释性语言 vs. 编译性语言l 执行流程l 性能l 目前计算机硬件的发展使得解释程序的性能代价在很多场合可以忽略l 跨

6、平台性:解释程序与虚拟机l 灵活性l 自解释l 运行时修改、创建程序l 自执行l 目前解释性语言的应用比例逐渐提高by skywind静态类型语言 vs. 动态类型语言l变量的数据类型是在运行前静态确定的,还是运行时动态确定的,称之为静态类型语言Statically Typed Languages和动态类型语言Dynamically Typed Languages)l动态类型语言具有更大的灵活性,很适于写出通用程序。而静态类型语言很难做到这一点如C语言中void *和C+中的模板)。l 动态类型的缺点在于发现错误的能力较差、运行代价高l包括面向对象中的多态类的判定。16by skywind动态

7、语言l一类在运行时可以改变其结构的语言:例如可以动态执行生成的代码,产生新的函数、对象定义、已有的函数可以被删除或是其他结构上的变化等。lECMAScript(JavaScript)是一个动态语言的代表,除此之外如PHP、Ruby、Python等也都属于动态语言。l动态语言是一种可“自创造的语言,典型的都有eval这样的语法要素。17by skywind关于类型的几个概念l动态语言大部分是动态类型语言l动态语言和大部分动态类型语言都是解释执行的,但解释语言不一定是动态语言Basic),也不一定是动态类型语言Java)。l静态类型语言可以是“强类型的或是“弱类型的”l可以在兼容类型包括类之间进行

8、隐含的或显式的类型转换,部分语言可以进行强制类型转换。18by skywind19脚本语言l 介于文本描述语言HTML等和高级编程语言之间l 一般都以文本形式存在,类似于一种命令l 最简单的脚本语言就是配置文件l 执行过程l 脚本语言是一种解释性的语言l 脚本语言一般都有相应的脚本引擎来解释执行 l 脚本语言主要指该语言面向的开发环境,脚本语言一般局限在某一个特定环境。l 编程语言的语法和规则更为严格和复杂,脚本语言相对灵活by skywind语言关注情况排名PositionMar 2009PositionMar 2019Programming LanguageRatingsMar 2009D

9、eltaMar 2019Status11Java19.797%-1.69%A22C15.862%+1.00%A35C+10.357%+1.08%A44PHP9.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

10、%+0.65%A-1514SAS0.796%-0.15%A1617Pascal0.733%+0.29%A-1729ABAP0.638%+0.49%B1826RPG (OS/400)0.585%+0.41%B1921ActionScript0.481%+0.17%B2018Lua0.480%+0.09%B资料来源:tiobe/主要依据:搜索引擎by skywind21语言关注情况分析tiobe/index.php/content/paperinfo/tpci/index.htmlby skywind2019年趋势22by skywind23一些其他比较数据 CategoryRatings Mar

11、ch 2009Delta March 2019Object-Oriented Languages 55.9% +1.2% Procedural Languages 39.7% -2.9% Functional Languages 3.3% +1.5% Logical Languages 1.1% +0.1% YearWinner2019 C 2019 Python 2019 Ruby 2019 Java 2019 PHP 2019 C+ CategoryRatings March 2009Delta March 2019Statically Typed Languages 59.2% +2.2

12、% Dynamically Typed Languages 40.8% -2.2% by skywind24一点分析lJava,C/C+始终占据主要地位,但略有下降lVB,C#不温不火,特别是C#,没有达到期望的使用率lPerl、Python、PHP保持前列地位,但Perl有所下滑相对古老)l一些新兴语言,如Ruby、Lua尚不能取得领先地位by skywind25CSDN中国IT技术指数报告l.csdn/csdn_radar/archive/2019/07/24/2705240.aspxl数据来源如下数据来源如下(2019.7):l*特定时段内新出现在主要特定时段内新出现在主要IT专业网站上

13、的专业网站上的相关网页数量相关网页数量l*特定时段内互联网上新张贴的相关论坛贴特定时段内互联网上新张贴的相关论坛贴子和博客文章数量子和博客文章数量l*特定时段内相关互联网搜索数量特定时段内相关互联网搜索数量l*特定时段内相关工作职位招聘规模特定时段内相关工作职位招聘规模l*特定时段内相关图书销售量特定时段内相关图书销售量by skywind262019年6月中国地区计算机语言指数 排名排名语言语言指数得分指数得分对比对比评级评级1Java226324.9%*2C/C+143615.1%*注:其中Visual C+4324.5%-3PHP8929.4%*4Javascript8919.4%*5S

14、QL8919.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相关技术-服务器端排名

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

16、Ruby on Rails为代表的第三代 lAjax仍据主流,新RIA技术奋起直追 by skywind30基础软件设施-服务器OSby skywind31基础软件设施-数据库by skywind32基础软件设施-移动操作系统by skywind33JavaEE应用服务器及应用服务器及SAPby skywind不同类型的应用软件开发和语言选择l工业控制、嵌入式开发l系统软件开发:操作系统、数据库l通用桌面应用软件l信息管理系统lC/S模式lB/S模式l互联网应用l游戏和娱乐l专用软件34by skywind35语言对比:C+ vs Javal速度与性能l指针与句柄l对象处理机制l根类Objectl运算符重载l多继承与接口l不同的绑定方式l自动垃圾收集与析构器l名字空间封装by skywind36更加健壮的Javal增强的异常处理机制l数组下标检查l内置多线程支持l没有显式的指针,不能进行强制类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论