文档介绍:C++语言程序设计
第1讲: 绪论/5
低级语言与高级语言
面向机器的语言是低级语言;面向使用者的语言是高级语言。
机器可直接执行的语言是低级语言;必须经过“翻译”才能执行的语言是高级语言。
汇编语言是低级语言;
Basic、Pascal、Fortran、C、MathLab、C++、Java、C#等都是高级语言。
低级语言由于面向机器,所以执行效率很高;
但可读性差、编写困难,不易维护。
人与计算机的沟通
机器语言:
机器直接执行
汇编语言:
与机器码对应
高级语言:
通过“翻译”
01010010
10010011
00110011
01010010
10010011
00110011
MOV AX,A5h
MOV BX,90h
INT 13h
01010010
10010011
00110011
。。。
for(i=1,i<20;i++)
{
variable += 25;
if(variable==100) break;
}
高级语言
高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。
高级语言的特征:使用人比较容易理解的逻辑语言来记录计算机运算过程。
高级语言的逻辑结构:顺序结构、选择结构、循环结构等。
高级语言与具体机器指令无关。
高级语言需要通过编译或解释才能在计算机上运行。
面向过程与面向对象
最早面向过程FORTRAN77 :代码
结构化程序 ALGOL60,后发展成PASCAL:代码
50年代开始发展,直到80年代。
80年代末C语言开始流行,一直到90年代。
面向过程实际上就是面向结构和函数的程序。
软件危机
软件危机最早在1968年的NATO会议提出,表现为:
对软件的需求远超出现有的生产能力;
人们依赖于脆弱的软件,目前的软件不可靠、缺乏安全性、性能下降、出错、难以升级,73%的软件项目被延迟、超资、取消或失败。
为了从根本上解决软件危机的危机,人类提出了“软件工程”的一些列方法,然而,众多的软件工程的方法并没有彻底解决“软件危机”的问题。
软件危机
1986年,弗雷德里克·布鲁克斯提出一个著名悲观论断: “没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性”。
非常遗憾的是银弹论断迄今为止尚未打破!据美国国家标准和技术研究院的一份报告显示,占据世界软件销售额85%的是大型的专用软件,而其开发的失败率却高达70%。
针对日趋复杂的软件需求的挑战,软件业界在90年代发展出了面向对象(Object-Oriented)的软件开发模式,作为针对“软件危机”的最佳对策。
面向对象的思想
一般对象:
是现实世界中一个实际存在的事物。
可以使有形的(比如一辆汽车),也可以是无形的(比如一项计划)。
是构成世界的一个独立单位,具有:
静态特征:可以用某种数据来描述
动态特征:对象所表现的行为或具有的功能
软件中的对象:
对象应可以用量化描述和处理;
对象具有属性和行为:
属性:描述对象的静态特征的数据项;
行为:表述对象的动态特征的操作序列。
面向对象的思想
面向过程好比是无人管理的阅览室,只有书架和图书,随便看,随便拿。
面向对象好比是图书馆,图书被有效的管理(分类),借书凭证,到期归还。
属性:各种类型的图书、各个阅览室
行为:图书进货,阅读规则,借阅规则,残破处理等。
面向对象的思想——类Class
分类——人类通常的思维方法
分类所依据的原则——抽象
忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。
例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。