1-计算机程序设计语言

上传人:平*** 文档编号:46130629 上传时间:2018-06-22 格式:PPTX 页数:41 大小:1.07MB
返回 下载 相关 举报
1-计算机程序设计语言_第1页
第1页 / 共41页
1-计算机程序设计语言_第2页
第2页 / 共41页
1-计算机程序设计语言_第3页
第3页 / 共41页
1-计算机程序设计语言_第4页
第4页 / 共41页
1-计算机程序设计语言_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《1-计算机程序设计语言》由会员分享,可在线阅读,更多相关《1-计算机程序设计语言(41页珍藏版)》请在金锄头文库上搜索。

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 s

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

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

4、严谨的面向对象机制 lC# 与微软的dot net紧密结合by skywind10后工业时代l脚本语言 unix系统脚本语言 Perl、Python、Ruby、Lua l动态类型语言 lWEB服务器开发语言 JSP PHP ASP lWEB页面端开发语言 Javascriptby skywind几种现代流行语言谱系11C语言C+JavaC#VBAspJSPPHPPythonPerlRubyPascalDelphiObjective-CJavaScriptAsp.NETBasicby skywind12函数式程序设计语言lLisp Logo、Scheme、Common Lisp lLisp特点万

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

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

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

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

9、n Mar 2009Position Mar 2008ProgrammingLanguageRatings Mar 2009Delta Mar 2008Status11Java19.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% A1

10、111Ruby2.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% B1826RPG (OS/40 0)0.585%+0.41% B1921ActionScript0.481%+0.17% B2018Lua0.480%+0.09% B资料来源:http:/ skywind21语言关注情况分析http:/ skywind2011年趋势22by skywind2

11、3一些其他比较数据 CategoryRatings March 2009Delta March 2008Object-Oriented Languages 55.9% +1.2% Procedural Languages 39.7% -2.9% Functional Languages 3.3% +1.5% Logical Languages 1.1% +0.1% YearWinner2008 C 2007 Python 2006 Ruby 2005 Java 2004 PHP 2003 C+ CategoryRatings March 2009Delta March 2008Statical

12、ly 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 有所下滑(相对古老) l一些新兴语言,如Ruby、Lua尚不能取得 领先地位by skywind25CSDN中国IT技术指数报告lhttp:/ /2008/07/24/2705240.aspx l数据来源如下(2008.7): * 特定时段内新出现在主要IT

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

14、*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相关技术-服务器端排名技术指数 得分对比评级1ASP.NET103337.0%*2PHP85330.6%*3Java based78628.2%*4Ruby on Rails84

15、3.0%*5Python based190.7%*6Perl based160.6*by skywind29说明与注解lWeb服务端三足鼎立,RoR雷声大雨点小 第一代:CGI 第二代:PHP、JSP、ASP lPHP:快捷灵活高效,低成本,国内以个人爱好和高 性能网站开发为主。 lJSP:结构严谨,适合于企业级的B/S模式的管理系统 ,难以迎合时尚网站多变的需求。 lASP:简单易学,在国内的占有率远高于国际。适合 简单、多变的网站开发。 第三代:以Ruby on Rails为代表的第三代 lAjax仍据主流,新RIA技术奋起直追 by skywind30基础软件设施-服务器OSby skywind31基础软件设施-数据库by skywind32基础软件设施-移动操作系统by skywind33Java EE应用服务器及SAPby skywind不同类型的应用软件开发和语言选择l工业控制、嵌入式开发 l系统软件开发:操作系统、数据库 l通用桌面应用软件 l信息管理系统 C/S模式 B/S模式 l互联网应用 l游戏和娱乐 l专用软件34by skywind35语言对比:C+ vs Javal速度与性能 l

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号