计算机编程语言的发展趋势.ppt_第1页
计算机编程语言的发展趋势.ppt_第2页
计算机编程语言的发展趋势.ppt_第3页
计算机编程语言的发展趋势.ppt_第4页
计算机编程语言的发展趋势.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

编程语言的发展趋势 编程语言的历史 现状和未来 计算机与信息学院王安慧snowfield 据说全世界存在过计算机编程语言超过2500种 你可以在下面的网站查询到约2500种编程语言的相关信息 http people ku edu nkinners LangList Extras search htm 关于编程语言的几个问题 编程语言可以分为哪些种类 优秀的编程语言应该是什么样 导致编程语言流行的原因 最流行的编程语言是什么 如何选择适合自己的开发语言 提纲编程语言发展历史的简单回顾编程语言的现状编程语言的发展趋势编程语言的选择 编程语言发展历史的简单回顾 编程语言发展历史的简单回顾 低级语言时代高级语言时代面向对象时代 低级语言时代 1946 1953 光电阅读机将记录在穿孔卡片上数据读入计算机 计算的结果则利用打孔机在卡片上打出的一些小孔 就表示输出的数据 卡片上的小孔就组成了计算机和专家明白但绝大多数人不明白的天书 机器语言 也就是完全用0 1代码写的程序 机器语言 汇编语言 由于机器语言的难易理解 莫奇莱等人开始想到用助记符来代替0 1代码 于是汇编语言出现了section datamsgdb Hello world 0 xAlenequ msg section text global start start 高级语言时代 1954 至今 随着世界上第一个高级语言fortran的出现 新的编程语言开始不断涌现出来 各有特色 各有优势 随着时间的检验 一些流行至今 一些则逐渐消失 常见的高级编程语言ALGOL1960 第一个结构化程序设计语言推出C1972年 丹尼斯 里奇以B语言为基础开发出C语言 目前世界上最常用的程序语言之一 C语言是使用最广泛的语言之一 可以说 C语言的诞生是现代程序语言革命的起点 是程序设计语言发展史中的一个里程碑 开启了一个时代的C语言 宣传图 常见的高级编程语言Basic1964年美国达特茅斯学院的两个教员 约翰 凯梅尼 J Kemeny 和托马斯 卡茨 T Kurtz 开发了basic语言该语言只有26个变量名 17条语句 12个函数和3个命令这门语言叫做初学者通用符号指令代码 BeginnersAllpurposeSymbolicIntructionCode 常见的高级编程语言Pascal1967年 NiklausWirth开始开发PASCAL语言 1971年完成 主要特点有 严格的结构化形式 丰富完备的数据类型 运行效率高 查错能力强 可以被方便地用于描述各种算法与数据结构有益于培养良好的程序设计风格和习惯PASCAL是一个重要的里程碑结构化程序设计概念的语言 面向对象时代 1990s初 至今 面向对象程序设计 Object OrientedProgramming 简称OOP 是一种起源于六十年代的Simula语言 发展已经将近三十年的程序设计思想 其自身理论已经十分完善 并被多种面向对象程序设计语言实现 常见的面向对象编程语言VB Basic的继续Delphi Pascal的继续C C语言扩展VC BorlandC BuilderQtJava 最为流行的面向对象语言C 新一代的面向对象语言 总结 1 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等等也占据了一定的市场 编程语言的现状 编程语言的现状 几十年来硬件与编程语言的发展的对比从TOIBE排行榜看编程语言的现状 过去31年个人PC机硬件发展 几十年来编程语言进步 自1953年 第一个高级编程语言产生1972年 C语言诞生 至今整整40年 C语言的发展 几十年来编程语言进步 1972年 诞生1978年 贝尔实验室正式发表C语言1983年 着手制定标准1989年 C语言标准被批准 即ANSIC1990年 ISO接受ANSIC为ISOC的标准1999年 ISO又对C标准标准修订形成 C992011年12月8日 ISO正式公布C语言新的国际标准草案 ISO IEC9899 2011 即C11 自ANSI标准化C语言后至今 ISO修订对于C语言标准的改动非常小 用C语言编写的打印华氏温度与摄氏温度对照表代码 includemain intfahr celsius intlower upper step lower 0 upper 300 step 20 fahr lower while fahr upper celsius 5 fahr 32 9 printf d t d n fahr celsius fahr fahr step 用java语言编写的打印华氏温度与摄氏温度对照表代码packagetest publicclassTest publicstaticvoidmain String args intfahr celsius intlower upper step lower 0 upper 300 step 20 fahr lower while fahr upper celsius 5 fahr 32 9 System out printf d t d n fahr celsius fahr fahr step 用Python语言编写的打印华氏温度与摄氏温度对照表代码lower 0upper 300step 20fahr lowerwhile fahr upper celsius 5 fahr 32 9print s t s fahr celsius fahr fahr step 小结编程语言本身的发展非常缓慢 期间出现了一些东西 例如面向对象等等 但是远没有好上1000倍 过去的努力没有体现在编程语言上 而是体现在框架及工具等方面了 如今我们使用的框架 它们的体积的确有1000倍的增长 例如当年TurboPascal所带的框架大约有100个功能 而现在的 NETFramework里则有一万个类 十万个方法 的确有1000倍的增长 与此类似 如果你观察现在的IDE 我们现在已经有了无数强大的功能 例如语法提示 重构 调试器 探测器等等 这方面的新东西有很多 与此相比 编程语言的改进的确很不明显 从TIOBE排行榜看编程语言的现状 TIOBE编程语言排行榜世界排名前20的编程语言五大流行编程语言的发展趋势 编程语言的现状 TiobeTIOBE开发语言排行榜每月更新一次 依据的指数是基于世界范围内的资深软件工程师和第三方供应商提供 其结果作为当前业内程序开发语言的流行使用程度的有效指标 该指数可以用来检阅开发者的编程技能能否跟上趋势 或是否有必要作出战略改变 以及什么编程语言是应该及时掌握的 观察认为 该指数反应的虽并非当前最流行或应用最广的语言 但对世界范围内开发语言的走势仍具有重要参考意义 排名1 10的编程语言 排名11 20的编程语言 VeryLongTermHistoryofthetop10programminglanguages Thelongtermtrendsforthetop10programminglanguages 编程语言的发展趋势 编程语言的发展趋势 思考 影响编程语言未来发展的因素 编程语言未来发展趋势 动态化计算机能够处理的事交给计算机处理声明式及函数式编程风格告诉计算机What而不是How并发编程多核时代的必然要求观点来自AndersHejlsberg 编程语言的发展趋势及未来方向 的讲座 编程语言未来发展趋势 未来计算机编程语言特点总体向支持动态 声明式 并发支持 易于使用的多范式语言发展一些语言会同时支持面向对象 面向过程 动态 声明 函数式以及并发编程 排名21 50的语言 其中红色为动态语言 蓝色为函数式语言 安德斯 海尔斯伯格 安德斯 海尔斯伯格 AndersHejlsberg 1960 12 丹麦人 TurboPascal编译器的主要作者 Delphi和 NET之父比尔盖茨评价 Anders在C 创建中所做的努力将会改变现在的软件开发方式 并将在以后的十年继续产生影响 例 找出所有100以内能被3整除的数C语言实现核心代码 inti a 100 for i 0 i 100 i if i 3 0 a i i printf d t a i 例 找出所有100以内能被3整除的数Python语言实现核心代码 a xforxinrange 1 100 printa 例 从文本文件中读入所有行到一个数组 列表 中C语言实现核心代码 FILE fr chars 1000 1000 inti 0 fr fopen test txt r while feof fr fgets s i 1000 fr i 例 从文本文件中读入所有行到一个数组 列表 中Python语言实现核心代码 li open test txt readlines 例 快速排序算法 快速排序算法 C语言实现voidqsort intv intleft intright inti last voidswap intv inti intj if left right return swap v left left right 2 last left for i left 1 i right i if v i v left swap v last i swap v left right qsort v left last 1 qsort v last 1 right voidswap intv inti intj inttemp temp v i v i v j v j temp 快速排序算法 haskell实现 qsort qsort x xs qsort y y x 小结命令式语言面向机器的 以机器为中心 与计算机内部原理相一致注重How 即如何解决问题函数式语言面向问题的 以人为中心 更符合人的思维方式 具有更高的抽象注重What 即对问题的描述 编程语言的选择 编程语言的选择 编程语言的分类不同编程语言的特点值得关注的一些编程语言编程语言与开发工具的选择 编程语言的分类 几种概念的说明面向对象的编程语言支持面向的编程语言 编程语言的分类 高级语言与低级语言编译型与解释型动态与静态类型命令式与函数式非中文与中文 动态语言 是指程序在运行时可以改变其结构新的函数可以被引进 已有的函数可以被删除等在结构上的变化动态语言的类型检查是在运行时做的静态类型语言的类型判断是在运行前判断 06 47 命令式编程 Imperativeprogramming 是一种描述电脑所需作出的行为的编程范型 几乎所有电脑的硬件工作都是指令式的 几乎所有电脑的硬件都是设计来运行机器码 使用指令式的风格来写的 较高级的指令式编程语言使用变量和更复杂的语句 但仍依从相同的范型 因为命令式编程的基础观念 不但概念上比较熟悉 而且较容易具体表现于硬件 所以大部分的编程语言都是指令式的 06 47 函数式编程是种编程典范 它将电脑运算视为函数的计算 函数编程语言最重要的基础是 演算 lambdacalculus 而且 演算的函数可以接受函数当作输入 参数 和输出 返回值 和指令式编程相比 函数式编程强调函数的计算比指令的执行重要 和过程化编程相比 函数式编程里 函数的计算可随时调用 编程语言的分类 中文编程语言易语言丙正正习语言Peryuyan扩展阅读 各种奇怪的中文编程语言 易语言是由大连大有吴涛易语言软件有限责任公司自主研发的国产化汉语编程软件 是2005年国家火炬计划项目之一 是一种全中文全可视跨平台的编程语言环境 网站最近更新时间 2010年12月 易语言示例局部变量文本 文本型 局部变量返回文本 文本型 判断循环首 整数 0 文本 文本 字符 取代码 0 整数 2 整数 整数 2 判断循环尾 计次循环首 取文本长度 文本 整数 返回文本 返回文本 取文本中间 文本 取文本长度 文本 整数 1 1 计次循环尾 返回 返回文本 丙正正语言示例空象棋檔 設定註解 字元 s 整數n 若 n 最大註解數 對於 最大註解數 n 最大註解數 註解 最大註解數 NONE 若 s NULL或字串長度 s 0 傳回 若 註解 n NONE 刪除註解 n 註解 n 新字元 字串長度 s 1 字串複製 註解 n s 包含 习语言系统 接口 习语言代码示例整数类型主函数 文件类型 fp 整数类型ch 如果 fp 文件打开 练习13 2 文本 写 空指针 格式输出 无法打开文件 练习13 2 文本 暂停 退出 1 格式输出 输入一串字符 n ch 输入字符 若符合条件 ch 宏 换行键 重复 文件写字符 ch fp ch 输入字符 文件复位 fp ch 文件读字符 fp 若符合条件 ch 宏 文件结束 重复 输出字符 ch ch 文件读字符 fp 格式输出 n 文件关闭 fp 暂停 返回0 usr local bin perluseLingua Sinica PerlYuYan 用警兮用嚴 印道1 1哉兮印編曰雜申雜申矣又曰ok矣又曰1矣亂曰國無人莫我知兮又何懷乎故都既莫足與為美政兮吾將從彭咸之所居 usr local bin perl TheSieveofEratosthenes 埃拉托斯芬篩法useLingua Sinica PerlYuYan 用籌兮用嚴井涸兮無礙 印曰最高矣又道數然哉 截起

温馨提示

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

评论

0/150

提交评论