高级程序设计语言.ppt_第1页
高级程序设计语言.ppt_第2页
高级程序设计语言.ppt_第3页
高级程序设计语言.ppt_第4页
高级程序设计语言.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

高级程序设计语言,华南理工大学 陈虎 博士 副教授,高级程序设计语言的实现方式,编译 将高级语言编写的程序转换为机器码; C,C+ 执行效率高、缺乏可移植性 解释 输入用高级语言编写的程序,指导计算机执行每个指定的动作 Java, Perl脚本语言 执行效率低、可移植性好,C+和Java的实现途径比较,C+源程序,Windows编译器,Linux编译器,Windows平台的 可执行代码,Linux平台的 可执行代码,C+源程序,Java编译器,Windows平台的 Java虚拟机,Linux平台的 Java虚拟机,Java字节码,平台无关,平台相关,高级程序设计的几种主要类型,命令模式 对存储在内存中的数值进行操作的顺序指令 C, C+, BASIC, Pascal 函数模式 计算被表示为函数求解 Lisp 逻辑程序 由关于对象的事实和一组关于对象之间的规则构成 Prolog 面向对象 由交互的对象构成 Smalltalk,几种有代表性的程序设计语言,Fortran(FORmula TRANslation) 世界上第一个被正式推广使用的计算机高级语言 1954年提出 科学计算领域首选的计算机高级语言。 COBOL(Common Business Oriented Langauge) 最早的高级编程语言之一,世界上第一个商用语言。 世界上70的数据都是用COBOL语言处理的,并且90的ATM事务处理用的都是COBOL语言。 只要大型机存在,COBOL就不会消失,几种有代表性的程序设计语言,Ada语言 1983年成为 ANSI 标准 ANSI/MIL-STD-1815A 结构化程序设计语言的典范 美国军方软件开发语言 Pascal语言 瑞士苏黎士理工学院的尼古拉斯-沃斯(Niklaus Wirth)教授在1971年设计 强健数据类型概念、强制性的数据类型声明 最优秀的结构化程序设计的教学语言 Basic语言 1964年Dartmouth大学的John G. Kemeny和Thomas E. Kurtz发明 1975年,Bill Gates和Paul Allen编写了一个Basic解释器 一种适合初学者的语言,几种有代表性的程序设计语言,Prolog (Programming In Logic) 1972年法国科莫劳埃小组为了提高归结法的执行效率,研制出一个定理证明程序的程序执行器,标志着第一个逻辑程序设计语言PROLOG的诞生。 1974年及以后,R.科瓦尔斯基进一步从谓词逻辑的HORN子句的角度阐明PROLOG的理论基础,系统地提出逻辑程序设计的思想。 八十年代日本第五代计算机的核心语言 Lisp(LISt Processor) 1958年,由约翰麦卡锡(John McCarthy)创造的一种基于演算的函数式编程语言。 从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。,几种有代表性的程序设计语言,C语言和C+语言 1969年,美国贝尔实验室的Ken Thompson为DEC PDP-7计算机设计了最早的UNIX;根据BCPL语言为UNIX设计了一种便于编写系统软件的B语言; 19721973年,贝尔实验室的Denis Ritchie改造了B语言,为其添加了数据类型的概念,将其命名为C。 1973年,Ken Thompson小组用C重新改写了UNIX的内核。与此同时,C语言的编译程序被移植到多种计算机上,迅速成为应用最广泛的系统程序设计语言 1983年,贝尔实验室的Bjarne Stroustrup博士对C语言进行改进和扩充,C+语言。 1998年正式发布了C+语言的国际标准ISO/IEC:98-14882。 C+支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,同时,C+又是C语言的一个超集,这就使得许多C代码不经修改就可被C+编译通过。,几种有代表性的程序设计语言,Java语言 1990年代初, Sun Microsystems的James Gosling等人开发。最初被命名为Oak,作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。 随着Internet的发展,Sun看到了Oak在计算机网络上的广阔应用前景,在1995年5月以“Java”的名称正式发布了。Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。 是一种可以编写跨平台应用软件的面向对象的程序设计语言,C、C+、Java的进一步评述,评述者:Eric Raymond,开源运动的领袖人物 C语言 对于那些要求最高的效率,良好的实时性,或者与操作系统内核紧密关联的程序来说,C仍然是很好的选择。 良好的可移植性 现有的很多程序可以产生非常棒的C代码 对于程序员来说具有无可替代的价值 能帮助你在硬件体系的层次上思考问题。 最出色的地方在于其高效和贴近机器,最糟糕的地方在它的内存管理地狱。,C+ C+的面向对象特性看相去使其全面超越了C。但是历史并非如此。 为了与C兼容,C+被迫作出了很多重大的设计妥协,结果导致语言过分复杂。 C+并没有采用自动内存管理的策略。 面向对象方法并没有很好的达成人们当年的预期。C+的应用还是集中在GUI,游戏和多媒体工具包这些方面 最近几年,C+加入了很多非OO的思想,其异常思想类似Lisp,STL的出现是非常了不起的。 其实C+最根本的问题在于,它基本上只不过是另一种传统的语言。STL中的内存管理比先前的new/delete和C的方案要好的多,但是还是没有解决问题。对于很多应用程序而言,其OO特性并不明显,相比与C,除了增加复杂度之外没有获得很多好处。,Java语言 Java采用了自动内存管理 Java的平台无关性 支持面向对象设计带来的好处虽然不那么突出,不过也很值得赞赏,相比C+,其设计规模小而且简单 。 Java在某些方面过于复杂了。 除了内存之外的其他资源(比如互斥量和锁)管理起来很困难。 Java的线程不可靠,其I/O机制很强大,但是读取一个文本文件却非常繁琐。 Java没有管理库版本的机制 总体而言,我们可以说除了系统编程和对效率要求极高的程序之外,Java在大部分领域优于C+。,对于高级程序设计语言学习的一些建议,高级程序设计语言有很大的类似成分,精通一种语言就可以快速地学习其他语言,做到融会贯通; 注意各种语言的特点 在应用开发时,需要根据应用的具体要求选择 没有最好的语言,只有最适合的语言,阅读与讨论,开放源代码,P.179-180 请收集资料,并准备论文 45人一组,论文长度大于2000字,注明参考文献 论题1:开放源代码运动 开放源代码运动的历史 开源代码对现代软件产业发展的影响 开源代码中的知识产权保护,论题2:微软公司涉嫌垄断问题,收集微软公司涉嫌垄断的案例 为什么很多公司和政府认为微软公司涉嫌垄断? 你认为微软公司不开放源代码的策略是否有助于知识产权保护? 一些材料: 1998年美国太阳微电子公司向欧盟委员会的投诉。随后的2004年,欧盟委员会认定,微软公司凭借自己在个人电脑操作系统领域的优势地位打压竞争对手,除要求微软公司限期提供不带自身媒体播放器的windows服务器软件行业的竞争对手开放兼容技术信息外,还对其开出了4.97亿欧元的巨额罚单; 2007年10月24日,欧盟委员会负责竞争事务的内莉克勒斯斯米特委员向新闻媒

温馨提示

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

评论

0/150

提交评论