计算机软件发展历史(简史)
来源:互联网
生田斗真结婚计算机软件技术发展很快。50年前,计算机只能被高素质的专家使用,今天,计算机的使用非常普遍,甚至没有上学的小孩都可以灵活操作;40年前,文件不能方便地在两台计算机之间进行交换,甚至在同一台计算机的两个不同的应用程序之间进行交换也很困难,今天,网络在两个平台和应用程序之间提供了无损的文件传输;30年前,多个应用程序不能方便地共享相同的数据,今天,数据库技术使得多个用户、多个应用程序可以互相覆盖地共享数据。了解计算机软件的进化过程,对理解计算机软件在计算机系统中的作用至关重要。
第一代软件(1946-1953)
第一代软件是用机器语言编写的,机器语言是内置在计算机电路中的指令,由0和1组成。例如计算2+6在某种计算机上的机器语言指令如下: 10110000 00000110
00000100 00000010
10100010 01010000
第一条指令表示将“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年,塞缪尔(A.L.Samuel)发明了第一个下棋程序,开始了人工智能的研究。1968年荷兰计算机科学家狄杰斯特拉(Edsgar W.Dijkstra)发表了论文《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#等都是面向对象程序设计语言。