admin 管理员组

文章数量: 1086019


2024年12月31日发(作者:微信小程序官网的东西都是正品吗)

计算机软件发展历史(简史)

来源:互联网

计算机软件技术发展很快。50年前,计算机只能被高素质的专家使用,今

天,计算机的使用非常普遍,甚至没有上学的小孩都可以灵活操作;40年前,

文件不能方便地在两台计算机之间进行交换,甚至在同一台计算机的两个不同的

应用程序之间进行交换也很困难,今天,网络在两个平台和应用程序之间提供了

无损的文件传输;30年前,多个应用程序不能方便地共享相同的数据,今天,

数据库技术使得多个用户、多个应用程序可以互相覆盖地共享数据。了解计算机

软件的进化过程,对理解计算机软件在计算机系统中的作用至关重要。

第一代软件(1946-1953)

第一代软件是用机器语言编写的,机器语言是内置在计算机电路中的指

令,由0和1组成。例如计算2+6在某种计算机上的机器语言指令如下:

第一条指令表示将“6”送到寄存器AL中,第二条指令表示将“2”与寄存器AL

中的内容相加,结果仍在寄存器AL中,第三条指令表示将AL中的内容送到地

址为5的单元中。

不同的计算机使用不同的机器语言,程序员必须记住每条及其语言指令的二

进制数字组合,因此,只有少数专业人员能够为计算机编写程序,这就大大限制

了计算机的推广和使用。用机器语言进行程序设计不仅枯燥费时,而且容易出错。

想一想如何在一页全是0和1的纸上找一个打错的字符!

在这个时代的末期出现了汇编语言,它使用助记符(一种辅助记忆方法,采

用字母的缩写来表示指令)表示每条机器语言指令,例如ADD表示加,SUB表

示减,MOV表示移动数据。相对于机器语言,用汇编语言编写程序就容易多了。

例如计算2+6的汇编语言指令如下:

MOV AL,6

ADD AL,2

MOV #5,AL

由于程序最终在计算机上执行时采用的都是机器语言,所以需要用一种称为

汇编器的翻译程序,把用汇编语言编写的程序翻译成机器代码。编写汇编器的程

序员简化了他人的程序设计,是最初的系统程序员。

第二代软件(1954-1964)

当硬件变得更强大时,就需要更强大的软件工具使计算机得到更有效地

使用。汇编语言向正确的方向前进了一大步,但是程序员还是必须记住很多汇编

指令。第二代软件开始使用高级程序设计语言(简称高级语言,相应地,机器语

言和汇编语言称为低级语言)编写,高级语言的指令形式类似于自然语言和数学

语言(例如计算2+6的高级语言指令就是2+6),不仅容易学习,方便编程,

也提高了程序的可读性。

IBM公司从1954年开始研制高级语言,同年发明了第一个用于科学与工程

计算的FORTRAN语言。1958年,麻省理工学院的麦卡锡(John Macarthy)发

明了第一个用于人工智能的LISP语言。1959年,宾州大学的霍普(Grace Hopper)

发明了第一个用于商业应用程序设计的COBOL语言。1964年达特茅斯学院的凯

梅尼(John Kemeny)和卡茨(Thomas Kurtz)发明了BASIC语言。

高级语言的出现产生了在多台计算机上运行同一个程序的模式,每种高级语

言都有配套的翻译程序(称为编译器),编译器可以把高级语言编写的语句翻译

成等价的机器指令。系统程序员的角色变得更加明显,系统程序员编写诸如编译

器这样的辅助工具,使用这些工具编写应用程序的人,称为应用程序员。随着包

围硬件的软件变得越来越复杂,应用程序员离计算机硬件越来越远了。那些仅仅

使用高级语言编程的人不需要懂得机器语言和汇编语言,这就降低了对应用程序

员在硬件及机器指令方面的要求。因此,这个时期有更多的计算机应用领域的人

员参与程序设计。

由于高级语言程序需要转换为机器语言程序来执行,因此,高级语言对软硬

件资源的消耗就更多,运行效率也较低。由于汇编语言和机器语言可以利用计算

机的所有硬件特性并直接控制硬件,同时,汇编语言和机器语言的运行效率较高,

因此,在实时控制、实时检测等领域的许多应用程序仍然使用汇编语言和机器语

言来编写。

在第一代和第二代软件时期,计算机软件实际上就是规模较小的程序,程序的编

写者和使用者往往是同一个(或同一组)人。由于程序规模小,程序编写起来比

较容易,也没有什么系统化的方法,对软件的开发过程更没有进行任何管理。这

种个体化的软件开发环境使得软件设计往往只是在人们头脑中隐含进行的一个

模糊过程,除了程序清单之外,没有其他文档资料。

第三代软件(1965-1970)

在这个时期,由于用集成电路取代了晶体管,处理器的运算速度得到了

大幅度的提高,处理器在等待运算器准备下一个作业时,无所事事。因此需要编

写一种程序,使所有计算机资源处于计算机的控制中,这种程序就是操作系统。

用作输入/输出设备的计算机终端的出现,使用户能够直接访问计算机,而

不断发展的系统软件则使计算机运转得更快。但是,从键盘和屏幕输入输出数据

是个很慢的过程,比在内存中执行指令慢得多,这就导致了如何利用机器越来越

强大的能力和速度的问题。解决方法就是分时,即许多用户用各自的终端同时与

一台计算机进行通信。控制这一进程的是分时操作系统,它负责组织和安排各个

作业。

1967年,塞缪尔()发明了第一个下棋程序,开始了人工智能

的研究。1968年荷兰计算机科学家狄杰斯特拉(Edsgar ra)发表了论

文《GOTO语句的害处》,指出调试和修改程序的困难与程序中包含GOTO语句

的数量成正比,从此,各种结构化程序设计理念逐渐确立起来。

20世纪60年代以来,计算机用于管理的数据规模更为庞大,应用越来越广

泛,同时,多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈。为

解决多用户、多应用共享数据的需求,使数据为尽可能多的应用程序服务,出现

了数据库技术,以及统一管理数据的软件系统——数据库管理系统DBMS。

随着计算机应用的日益普及,软件数量急剧膨胀,在计算机软件的开发和维

护过程中出现了一系列严重问题,例如:在程序运行时发现的问题必须设法改正;

用户有了新的需求必须相应地修改程序;硬件或操作系统更新时,通常需要修改

程序以适应新的环境。上述种种软件维护工作,以令人吃惊的比例消耗资源,更

严重的是,许多程序的个体化特性使得他们最终成为不可维护的,“软件危机”就

这样开始出现了。1968年,北大西洋公约组织的计算机科学家在联邦德国召开

国际会议,讨论软件危机问题,在这次会议上正式提出并使用了“软件工程”这个

名词。

第四代软件(1971-1989)

20世纪70年代出现了结构化程序设计技术,Pascal语言和Modula-2

语言都是采用结构化程序设计规则制定的,Basic这种为第三代计算机设计的语

言也被升级为具有结构化的版本,此外,还出现了灵活且功能强大的C语言。

更好用、更强大的操作系统被开发了出来。为IBM PC开发的PC-DOS和为

兼容机开发的MS-DOS都成了微型计算机的标准操作系统,Macintosh机的操作

系统引入了鼠标的概念和点击式的图形界面,彻底改变了人机交互的方式。

20世纪80年代,随着微电子和数字化声像技术的发展,在计算机应用程序

中开始使用图像、声音等多媒体信息,出现了多媒体计算机。多媒体技术的发展

使计算机的应用进入了一个新阶段。

这个时期出现了多用途的应用程序,这些应用程序面向没有任何计算机经验

的用户。典型的应用程序是电子制表软件、文字处理软件和数据库管理软件。

Lotus1-2-3是第一个商用电子制表软件,WordPerfect是第一个商用文字处理软

件,dBase III是第一个实用的数据库管理软件。

第五代软件(1990-)

第五代软件中有三个著名事件:在计算机软件业具有主导地位的

Microsoft公司的崛起、面向对象的程序设计方法的出现以及万维网(World Wide

Web)的普及。

在这个时期,Microsoft公司的Windows操作系统在PC机市场占有显著优

势,尽管WordPerfect仍在继续改进,但Microsoft公司的Word成了最常用的

文字处理软件。20世纪90年代中期,Microsoft公司将文字处理软件Word、电

子制表软件Excel、数据库管理软件Access和其他应用程序绑定在一个程序包中,

称为办公自动化软件。

面向对象的程序设计方法最早是在20世纪70年代开始使用的,当时主要

是用在Smalltalk语言中。20世纪90年代,面向对象的程序设计逐步代替了结

构化程序设计,成为目前最流行的程序设计技术。面向对象程序设计尤其适用于

规模较大、具有高度交互性、反映现实世界中动态内容的应用程序。Java、C++、

C#等都是面向对象程序设计语言。

1990年,英国研究员提姆·柏纳李(Tim Berners-Lee)创建了一个全球

Internet文档中心,并创建了一套技术规则和创建格式化文档的HTML语言,以

及能让用户访问全世界站点上信息的浏览器,此时的浏览器还很不成熟,只能显

示文本。

软件体系结构从集中式的主机模式转变为分布式的客户机/服务器模式

(C/S)或浏览器/服务器模式(B/S),专家系统和人工智能软件从实验室走出

来进入了实际应用,完善的系统软件、丰富的系统开发工具和商品化的应用程序

的大量出现,以及通信技术和计算机网络的飞速发展,使得计算机进入了一个大

发展的阶段。

在计算机软件的发展史上,需要注意“计算机用户”这个概念的变化。起初,

计算机用户和程序员是一体的,程序员编写程序来解决自己或他人的问题,程序

的编写者和使用者是同一个(或同一组)人;在第一代软件末期,编写汇编器等

辅助工具的程序员的出现带来了系统程序员和应用程序员的区分,但是,计算机

用户仍然是程序员;20世纪70年代早期,应用程序员使用复杂的软件开发工具

编写应用程序,这些应用程序由没有计算机背景的从业人员使用,计算机用户不

仅是程序员,还包括使用这些应用软件的非专业人员;随着微型计算机、计算机

游戏、教育软件以及各种界面友好的软件包的出现,许多人成为计算机用户;万

维网的出现,使网上冲浪成为一种娱乐方式,更多的人成为计算机的用户。今天,

计算机用户可以是在学习阅读的学龄前儿童,可以是在下载音乐的青少年,可以

是在准备毕业论文的大学生,可以是在制定预算的家庭主妇,可以是在安度晚年

的退休人员,……,所有使用计算机的人都是计算机用户。


本文标签: 计算机 程序 应用程序 软件