C++优秀课件第01章概说C++

上传人:E**** 文档编号:90582827 上传时间:2019-06-13 格式:PPT 页数:43 大小:158KB
返回 下载 相关 举报
C++优秀课件第01章概说C++_第1页
第1页 / 共43页
C++优秀课件第01章概说C++_第2页
第2页 / 共43页
C++优秀课件第01章概说C++_第3页
第3页 / 共43页
C++优秀课件第01章概说C++_第4页
第4页 / 共43页
C++优秀课件第01章概说C++_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《C++优秀课件第01章概说C++》由会员分享,可在线阅读,更多相关《C++优秀课件第01章概说C++(43页珍藏版)》请在金锄头文库上搜索。

1、1.0 本科程在专业学习中的地位 1.1 程序设计语言 1.2 C+前史 1.3 C+ 1.4 C+编程流程 1.5 最小样板程序 1.6 程序与算法 1.7 过程化程序设计 1.8 对象化程序设计 1.9 小结,1.0 本科程在专业学习中的地位,本科程学习的高端目标:,1. 程序设计竞赛; 2. 初级程序员(证书):第四五学期 相当于实习工程师(本科毕业) 3. 中级程序员(证书):第五六学期 相当于助理工程师(本科毕业工作 1 年以上) 4. 高级程序员(证书):第六七学期 相当于工程师(本科毕业工作 5 年以上) 5. 软件设计师(证书):第七八学期 相当于高级工程师(本科毕业工作 9

2、年以上),C+到底难不难学?它从开始诞生以来,发展势头一直旺到现在,背后一定也有它的道理。 C+综合了各家之长,功能多,操作起来简单。有人说它难学,这是正常的,否则,一学就会的东西,还用得着努力教和学吗?至于学习的结果,就因人而异,甚至大相径庭了。难怪有的人趣味盎然,有的人大叹苦经。 中国古代有名画家王冕就是因为信奉了这样一句话而成才的:没有学不会的事情!,1.1 程序设计语言(Programming Language),人们用程序设计语言描述需要解决的问题,用“语言翻译/编译器”加工以使计算机理解其描述,尔后就能使计算机代替人们工作了。虽然编程语言最终目的是促使计算机为人们工作,但人们用编程

3、语言对问题的描述方式与内容,随着使用群体的扩大,越来越多地成为人们之间相互交流过程描述与信息表达的工具。 计算机上的机器指令也称为机器代码,它是机器语言的程序。机器语言是低级语言,汇编语言是机器语言的直接符号表示,所以基本上也是低级语言。而C+则是高级语言 。, mov eax, DWORD PTR a $ebp 8b 45 fc lea eax, DWORD PTR eax+eax*2 8d 04 40 mov ecx, DWORD PTR b $ebp 8b 4d f8 add ecx, ecx 03 c9 sub eax, ecx 2b c1 inc eax 40 mov DWORD P

4、TR a $ebp, eax 89 45 fc,汇编语言和某个特定的机器语言:,程序语言越低级,则必须对过程描写越具体,指令也就越接近机器的硬件逻辑。程序语言越高级,就越接近对问题的描述与表达,因而更直观,容易被人们所理解。 程序语言从低级到高级的发展,也就是从具体描述(编程)到抽象描述(编程),高级语言的抽象描述最后都需用“语言编译器”自动转化成机器的具体实现。 语言编译器的发展,则是从简单到复杂的过程。语言越是高级,描述越是抽象,则用于自动化转换的语言编译器越复杂,以便人们对问题只需有个相对简单的描述(编程),就能够被机器所理解。,1.2 C+前史(Pre-C+ history),1953

5、年12月,IBM公司的John Backus写了一份备忘录,建议为IBM704设计一种全新的编程语言。Backus多年工作在计算机上,深切体会到编程困难,他的目标是设计一种用于科学计算的“公式翻译语言”。 他带领的一个团队,终于在1954年完成了FORTRAN语言的设计和实现。在那以后,不同版本的FORTRAN语言纷纷面世。1966年,美国统一了它的标准,称为FORTRAN66语言,此后,又被更新为FORTRAN77和FORTRAN90。FORTRAN语言的后继版本要兼容以前大量的FORTRAN老程序,这一负担阻碍了它,无法革新成现代编程语言特征。但不管怎样,FORTRAN语言一直活跃了40多

6、年,Backus为此摘取了1977年度的“图灵奖”。,代数语言ALGOL,1958年,一个国际商业和学术计算机科学家组成的委员会在瑞士开会,探讨改进FORTRAN问题,并尝试设计一种标准化的计算机语言。1960年,该委员会在1958年讨论的基础上,定义了一种新的语言国际代数语言ALGOL60,首次引入了局部变量和递归概念,在数学表达和算法描述上比FORTRAN更出色,而且它不是解释执行,而是编译后运行,比FORTRAN程序效率更高。但由于ALGOL语言的设计要求是独立于机器的,所以就面临许多语言实现方面的技术问题,致使ALGOL语言无法流行。但它却演变为其他编程语言设计的概念基础。,科学计算借

7、助于FORTRAN获得快速进展的时候,还没有一种适用于商业计算的语言。美国国防部注意到了这种情况,1959年5月,五角大楼委托Grace Murray Hopper博士领导一个委员会,开始设计面向商业的通用语言COBOL。COBOL最重要的特征是语法与英文很接近,可以让不懂计算机的人也能看懂程序。1968年,COBOL语言进行了标准化。后又在1974年和1984年进行了标准化更新。COBOL语言曾经风靡一时。,商用语言COBOL,BASIC语言,60年代中期,美国Dartmouth学院的John G.Kemeney和Thomas E.Kurtz认为,像FORTRAN这样的编程语言,都是为专业人

8、员设计的,而他们希望能为无经验的人提供一种简单的编程语言,特别希望那些非计算机专业的学生也能通过这种语言学会使用计算机。于是,他们在简化FORTRAN的基础上,研究出了BASIC语言。由于BASIC语言易学易用,很快就成为最流行的计算机语言之一,几乎所有小型和个人计算机都使用它。BASIC语言发展到后来,出现了许多改版,典型的有1983年推出的TrueBASIC,1985年推出的QBASIC,以及1991年推出的Visual BASIC(简称VB)。VB一直风靡至今长盛不衰。,Lisp语言,同在60年代中期,美国MIT的John McCarthy等人设计和实现了用于人工智能研究的Lisp语言。

9、Lisp语言是基于表处理的函数语言,由于该语言更面向问题,因此较容易编程,描述能力更强,更易于进行程序正确性验证和软件维护。但由于实现技术复杂,处理文件等能力不强,运行效率低,该工具一直停留在实验室阶段。,计算机教学语言LOGO和结构化的编程语言Pascal,1967年,美国麻省理工大学人工智能实验室S.Papert为儿童设计了一种LOGO编程语言。他用LOGO语言启发孩子们的学习与思考,一些孩子用LOGO语言设计出了真正的程序,于是LOGO成为一种热门的计算机教学语言。 1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很

10、强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,为此,他获得1984年度的“图灵奖”。,Simula67语言,1967年,挪威奥斯陆的Johan Dahl和Kristen Nygaard推出了Simula67语言。该语言第一次提出类的概念,能够把应用中的概念直接用编程语言描述,比其他语言编写的程序更具可读性,而且编译系统捕捉类型错误的能力十分强,保证了程序规模扩大之后,错误量不会非线性增长。该语言曾配置在好几个大型计算机上,但由于编译实现不完善,导致运行效率低下,只能执行一些小型程序,所以像ALGOL语言一样,没能流行,但成为未来面世的面向对象编程语言的概念基础。,C语言,197

11、0年,AT&T的Bell实验室D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植,所以大受程序设计师的青睐,成为计算机产业界的宠儿。为此,他们两位获得了1983年度的“图灵奖”。,C+语言,70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,实现过低级语言BCPL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也颇有好感,他深知运行效率的意义,所以,十分欣赏C语言。以C为背景

12、,以Simula思想为基础,正好符合既要编程简单、正确可靠,又要运行高效、可移植的设想。1979年,Bjarne Stroustrup到了Bell实验室,开始从事将C改良为带类的C (C with classes)的工作。1983年将该语言正式命名为C+。90年代,程序员开始慢慢从C中淡出,转入C+。此后,C+稳步发展,1998年ISO/ANSI C+标准正式制定,如今已是如日中天。鉴于C+对现代计算机产业的贡献,1995年BYTE杂志将Bjarne Stroustrup列入“计算机工业20个最具影响力的人”。,1.3 C+,C+是从C语言中继承而来的。C+的发展壮大,主要是因为程序设计方法的

13、发展。程序设计方法的发展,主要是计算机应用范围的扩大和编程规模的扩大。 C语言之所以风靡一时,在于当时需要计算机解决的问题多半是小规模问题,一般通过单台计算机独立蛮算便可解决。随着计算机的发展,人们开始着手解决大数据量的处理问题,需要处理大量复杂结构的数据。C程序员虽然经过艰苦的努力,设计出许多精巧的程序,但是在理解上却越来越困难,运行问题也越来越多。程序需要“保修(可维护性要求)”,需要“扩充(可扩展性要求)”,需要“加固(安全性要求)”。而这些精巧的程序由于内在结构的弱点数据结构与算法盘根错节,无法被可逆地拆解,很难分析“险情”和重新使用。,设计计算机语言的专家要改革这一现状,提出程序设计

14、语言应该具有数据类型的扩充能力。于是基于数据类型和面向数据类型的编程语言不断浮出水面。这些方法,是以程序员自己定义或设计数据类型的方式将复杂结构的数据进行系统的组织,统一的管理,以使程序组织合理,算法设计简单和易懂,C+便是其中之一,从商业化角度看,C+更是其中的跤跤者。在C的简捷、高效的基础上,C+添加了自定义数据类型的整套设施,以适应大规模编程的需要。因此,进入市场后,面向对象的编程方法也开始工业化了。,C继承者,C+对C的继承是青出于蓝而胜于蓝,因为是对C的继承,也就承诺了对C的包容。C+对C的包容,也包括对程序设计方法的包容,这就决定了C+擅长面向对象程序设计的同时,还可以进行基于过程

15、的程序设计,因而C+就适应的问题规模而论,大小由之。 C+是一种混合型程序设计语言,“混合”体现在可以采用不同的程序设计方法,进行各种目的的编程。 “混合”意味着绝不放弃计算机高效运行的实用性特征,而又致力于提高大规模程序的编程质量,提高程序设计语言的问题描述能力。,标准C+,有了C+标准,专家们在开发C+编译器时,可以避免大量的研究无序性和重复劳动,并且也为组织大规模的编译软件开发创造了前提条件; 有了C+标准文档,语言设计者,程序员和用户三者就可以有一致的语言来互通,在程序员社区可以畅通地交流,编写的程序变得更有效,更通用,更易懂。 有了C+标准,程序员所开发的软件产品具有更高的系统可移植

16、性;C+标准还在防止技术封锁,促进软件技术的交流,提高软件竞争力等方面起到了很好的保护作用; 所以当C+发展到一定规模的时候,无论是用户、程序员,还是C+语言的设计者,都在竭力推动标准化的工作。,使用标准C+,也意味着程序员可以充分享用C+的资源标准库。从而带来更多的快速和方便,提高抽象编程的程度。所以,学习C+,理所当然地要学习标准C+。 在我国,个人计算机配置的操作系统以Windows居多,比较容易获得的标准C+工具就是Borland公司的C+ Builder 6或者以上版本,或者微软公司的Visual C+、 .net或者以上版本。若在linux系统上,比较容易获得的标准C+工具就是Borland C+ Kylix 3.0以上版

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

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

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