计算机技术发展简史之4——机械存储程序设备的发展

  XZKL1234 ·  2011-07-22 15:50  ·  46360 次点击
机械计算机还远远不是现代的计算机,现代计算机与机械计算机的重要区别之一,就是能够自动地进行一系列单独的计算工作,而这些计算的每一步都是在存放在计算机内部的命令控制下进行的,这种命令我们就叫作指令。一组按要求编制好的指令,我们称之为程序。因此,必须有一种装置,能够事先将指令存贮起来,计算机在计算时逐一取出指令,然后根据指令进行计算,这就叫做程序存贮。解决程序存贮问题,是由机械计算机走向现代计算机的重大一步。
最早的程序存贮并不是来自机械计算机,而是源于纺织行业的提花机。远在西汉末年,中国的棉丝纺织业就相当发达并出现了世界上最早的提花机,三国时期的著名工匠马钧又将其加以改进,宋末元初的黄道婆将织布机又进行了改革,到了明朝就更加完善了。中国的提花机织布机经由著名的丝绸之路从阿拉伯国家传到意大利和法国,历经许多人的改造,于公元1801年由法国的工匠约瑟夫•杰卡发明了一种由穿孔卡片控制的织布机,编织的花样由穿孔的卡片控制,用机械装置识别卡片上的孔,从而织出复杂花样的纺织品。
后来,德国数学家查尔斯•巴贝奇收藏了约瑟夫•杰卡发明的卡片并进行了详尽的研究。在公元1812年,查尔斯•巴贝奇参观了约瑟夫•杰卡的织布机并购买了一台仿制机,经过一番努力,他终于在公元1822年设计出了第一台差分式计算机并成功地实际应用于导航表的计算。这台差分计算机基本上是专供计算多项式用的加法计算机,运算精度可达六位小数,可以对各种数学表进行计算。由查尔斯•巴贝奇所设计的这台计算机,从现代观点看尽管还很原始,但它是真正由程序控制的计算机,设计构思是非常巧妙的,而且从其本质上讲,这台差分计算机具备了现代计算机所应具备的一切:
①有一个能够存贮数据的存贮库,可以存贮五千个50位的数(齿轮);
②有一个能够进行各种基本运算的运算器(齿轮转动);
③有一个用来在运算机与存贮库之间进行往复运算的装置(齿轮与杠杆);
④有一个送入和取出数据的装置,数据和程序信息由穿孔卡片进行输入,输出则用穿孔卡片和打印机;
⑤还有一个用以控制计算顺序的控制装置,还可以执行判断操作即根据计算结果的符号来改变计算操作。
查尔斯•巴贝奇的计算机尽管具备了现代计算机的功能,但还有一个极为重要的区别,那就是他当时并未想到在存贮数据的同一机械装置上存贮指令,也就是说,查尔斯•巴贝奇的设计思想虽然有程序存贮的概念,但还不是内存程序式的,即程序不是存贮在机器内部的存贮器中,因而不能像对待数据那样对程序加以处理。尽管如此,查尔斯•巴贝奇的差分计算机仍是一台由程序控制的自动计算机。
具有历史意义的是:当查尔斯•巴贝奇在设计这台计算机时,英国著名浪漫主义诗人乔治•戈登•拜伦(George.GordonByron)的独生女儿爱达•奥古斯塔•拜伦(Ada.Augusta.Byron)是他当时仅有的三名支持者之一,她以数学家的敏锐眼光,洞察到查尔斯•巴贝奇的理论设计完全可行,因而大力支持这项工作,并首次建议使用中国的二进制计数存贮方式取代原设计的十进制存贮方式,同时指出,差分计算机可以像雅各织布机一样编制程序,并提出了编程的基本要求和要点。爱达•拉夫拉斯为这台差分式计算机编制了一批程序,包括三角函数和伯努利数的计算,这就是世界上最早的计算机程序。由于爱达•奥古斯塔•拜伦在程序设计上的开拓性工作,她被誉为世界上的第一位程序员。为了纪念爱达•奥古斯塔•拜伦的杰出贡献,美国国防部将1979年研制的标准计算机语言以她的名字命名为Ada语言。
到目前为止,Ada语言仍然是最严谨的计算机程序语言之一。

0 条回复

暂无讨论,说说你的看法吧!

 回复

你需要  登录  或  注册  后参与讨论!