阅读分享--计算简史

          从某种意义上说,计算的使用古已有之。许多早期数学家致力于解决重要的实际问题的计算,如观察兽群中动物的数量,计算小块土地的面积或记录商业交易等。这些活动要求人们开发新的计算技术,有时甚至要求人们发明新机器来帮助完成计算过程。例如,在亚洲使用了几千年的算盘,它是由在杆上滑动的小珠组成,这种计数装置大约在公元前2000年就出现了。
         纵观计算的历史,计算的发展相对来说比较缓慢。1623年,德国科学家Wilhelm Schickard发明了第一台机械计算器,这种计算器可以自动执行简单的算术运算。尽管由于三十年战争(1618~1648)的破坏,Schickard的发明已经失传,但法国哲学家Blaise Pascal于17世纪40年代用类似的技术发明了机械加法机,其复制品现存于法国巴黎。1673年,德国数学家Gottfried Leibniz发明了一种相当发杂的装置,除进行加减运算外还可进行乘除运算。所有这些装置都是纯机械的,没有发动机和其他动力源。操作者通过将金属轮转到特定的位置来输入数字,而转动这些金属轮又可带动机器的其他部分,从而改变显示的结果。
         在工业革命期间,技术的徐苏进步使得用心的方法制造机械的计算机成为可能。当时人们开始用蒸汽机为工厂生产和铁路运输提供动力。在这种情况下,人们开始考虑能否用蒸汽机驱动更复杂的计算机器,这种机器可在自己的动力控制下进行复杂的计算。然而在进行这项工作之前,已经有人提出问题并开始寻找答案。在这一领域中,有突出贡献的是英国数学家Charles Babbage,他是计算史上最有趣的名人之一。
         Babbage一生中涉及了两种不同的计算器,分别称为差分级和分析机,分别代表了当时计算器所取得的巨大进展。可惜的是,他没能完成这些项目。他所涉及的用于产生数学函数表的差分机知道30年后打的1854年才由一个瑞典发明家实现。分析机是Babbage一首的梦想,但知道1871年Babbage趋势时这个梦想也未能实现。尽管如此,他的设计中已经半酣了现代计算机的许多基本特点。最重要的是,在Babbage的构思中,分析机是一种通用的机器,可根据设计好的程序实现许多不用的功能。在这个设计中,分析机的操作是由一张卡上的一组小孔来控制的,机器可以读出这组小孔的排列模式。通过改变小孔的排列模式,人们可以改变机器的行为,从而执行不同的运算。
         人们对Babbage的工作的了解主要来自Augusta Ada Byron的作品。她是诗人Lord Byron和妻子Annabekka唯一的女儿,Ada比她同时代的人更具慧眼,预见到分析机的潜力,并成为它的拥护者。她为这种机器设计了复杂的程序,因而成为第一个程序员。为了纪念她所做的贡献,美国国防部与20世纪70年代将她的程序设计语言命名为Ada。
          Babbage的一些设计理念在很大程度上影响了其后的计算发展史,例如,用穿孔卡片控制计算,这种想法最初是由法国发明记Joseph Marie Jacquard提出并运用于自动织布机上的。1890年,Herman Hollerith用穿孔卡片为美国人口普查数据自动生成报表。为了推广这项技术,Hollerith成立了一家公司,即后来的IBM公司,在20世纪的大部分时间里,该公司都在计算机行业中居于统治地位。
         直到20世纪40年代,电子学的出现才使超越一直占据统治地位的机械计算器的梦想成为现实,实现了 Babbage关于可编程计算机的梦想。1939年末,衣阿华州立大学的John Atanasoff和她的学生Clifford Barry组装了第一台电子计算机的雏形。1942年5月,他们又组装了一个完整的包含了300个电子管得电子计算机。这台计算机能求出小型的线性方程组的解。在此基础上只要做一些小的设计上的改动,Atanasoff-Barry计算机就能执行更复杂的计算,但这项工作游于第二次世界大战而中断。
         第一台大规模的电子计算机是ENIAC,即电子数字积分器和计算机(electronic numericak integrator and computer)。1946年,ENUAC在宾夕法尼亚大学摩尔学院的J.Presper Eckert和John Mauchly的指导下完成,他由18000多个电子管组成,足足占据了一间长50英尺,宽30英尺的房间。ENIAC的编程是通过将电线插入一个叫做配线版(patch panel)的钉板似得装置上进行的。操作者通过用电线连接配线板上不同的插槽来控制ENIAC的行为。这种编程需要了解机器工作的内在本质,事实证明,操作它比设计者的最初设想要困难得多。
         现代计算在1946年取得重大突破,普林斯顿大学的约翰 · 冯 · 诺依曼(John Von Neumann)提出程序和数据可用类似的方式来表示,并可存储在同一内部存储器中。这个概念大大简化了程序设计过程,成为机会所有现代计算机的基础,为此人们称现代计算机使用的是 冯 · 诺依曼体系结构(von Neumann architecture)。
         随着ENIAC的完成和 冯 · 诺依曼存储程序设计概念的发展,计算机行业开始飞速发展。新系统、新概念层出不穷,再次不在赘述。许多历史学家按照计算机使用的基础技术,把现代计算机的发展划分为四代。
         1.2  什么是计算机科学
         生活在现代世界的人对什么是计算机有所了解。然而我们关注的是计算机科学而非计算机实体。乍一看,计算机和科学似乎不太搭配。在传统的用法中,科学一词指的是对自然现象的研究。当人们谈论生命科学或物理科学时,我们理解那种用法并习以为常。而计算机科学四会并非同类事务。计算机人类制造出来的物品,这一事实使我们觉得将对计算机的研究划分成为一门科学显得有些勉强。毕竟现代技术还创造了汽车,但我们并不称之为“汽车科学”,而是称之为“汽车工程”或“汽车技术”,为什么计算机就要与众不同呢?
         要回答这个问题,重要的是要意识到计算机本身只是其中的一个方面。你能在商店买到的计算机只是一个硬件(hardware)。它是有形的实体。你可以拿起来,带回家,放在桌上。如果需要,还可以当它是门前的台阶,虽然贵了些。但如果这台机器除了硬件以外一无所有,如果它从生产线上下来是什么样,来到用户面前还是什么样的话,它也只能做一些像门前的台阶一样的工作。现代计算机是一种通用的机器,具备执行许多任务的潜力,但必须对其进行编程(programmed)才能挖掘出那份潜力。给计算机编程就是给它一组指令,即一个程序,这组指令详细指明解决问题的每一个必要步骤。这些程序通常被称为软件(software)。只有软件和硬件结合在一起,计算机才能进行指定的计算。
         与硬件相比,软件是一个抽象的、无形的实体。它是用硬件能够解释的准确语言所表述的一系列简单步骤和操作过程。当我们谈论计算机科学时,我们主要关心的好似计算机软件领域,更重要的是抽象的问题解决领域。解决问题是一项高挑战性的活动,需要创造力、技巧和原则。从许多方面来看,最好将计算机科学看做解决问题的科学,而解决问题正巧也离不开计算机。
         这并不是说计算机本身不重要。在发明计算机之前,人们只能解决相对简单的计算问题。近50年来,计算机的存在使人们能够及时高效地解决日益困难和复杂的问题。由于人们试图解决的问题越来越复杂,寻找有效解决方法的任务也更为艰巨,因此解决问题的科学必须随着计算机技术的发展而发展。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值