大学计算机应用基础
上QQ阅读APP看书,第一时间看更新

1.1.2 早期计算机器的发展

算盘作为主要的计算工具流行了相当长的一段时间,直到中世纪,欧洲哲学家们提出了一个大胆的问题:能否用机械来实现人脑活动的个别功能?最初的目的并不是制造计算机,而是试图从某个前提出发,机械地得出正确的结论,即思维机器的制造。

1.机器计算的萌芽

1275年,西班牙神学家雷蒙德·露利(R.Lullus)发明了一种称为“旋转玩具”的思维机器。在旋转玩具中,数值可以由圆盘的旋转角度表示,数字的正、负可以由转动方向确定。旋转玩具引起了许多著名学者的研究兴趣,最终导致了能进行简单数学运算的计算机器的产生。数学家笛卡儿(Rene Descartes,1596—1650)曾经预言:“总有一天,人类会造出一些举止与人一样的‘没有灵魂的机械’来”。

1623年,德国的契克卡德(Wilhelm Schickard)教授在给他的朋友天文学家开普勒(Kepler)的一封信中,设计了一种能做四则运算的机器,但是这种机器没有实物作为佐证。

2.帕斯卡加法器

1642年,法国数学家帕斯卡(Blaise Pascal,1623—1662)制造了第一台能进行6位十进制加法运算的机器(见图1-3)。帕斯卡加法器由一系列齿轮组成,利用发条作为动力装置。帕斯卡加法器主要的发明在于:某一位小齿轮或轴完成了10个数字的转动,才能使下一个齿轮转动一个数字,从而解决了机器计算的自动进位问题。

图1-3 帕斯卡发明的加法器和它的内部齿轮结构(1642年)

3.莱布尼茨的二进制思想

1673年,德国数学家莱布尼茨(Gottfried Wilhelm Leibniz,1646—1716)在帕斯卡加法器的思想和工作的影响下,制造了能进行简单加、减、乘、除的计算机器。机器的关键部件是梯形轴,即齿长不同的圆柱,第一次实现了带有可变齿数的齿轮,这种数字齿轮保证了乘除法的进行。

1679年莱布尼茨发明了一种算法,用两个数(1和0)代替原来的10个数。1701年他写信给在北京的神父闵明我(Grimaldi)和白晋(Bouvet),告知自己的新发明,希望能引起他心目中“算术爱好者”康熙皇帝的兴趣。但是,关于这个神奇的数字系统,莱布尼茨只有几页异常精练的描述,没有建立一个完整的二进制数计算的理论体系。

4.巴贝奇的自动计算机器

1822年,英国剑桥大学著名数学家巴贝奇(Charles Babbage,1792—1871)设计了差分机和分析机(见图1-4)。巴贝奇的目标是制作一台可以计算多项式的“差分机”(加法机),用于快速编制对数、三角函数以及其他算术函数的数学用表。他整整用了10年时间,于1822年完成了第一台差分机,它可以处理3个不同的5位数,计算精度为6位数字,可以演算出好几种函数表。

差分机由以前每次只能完成一次算术运算,发展为自动完成某个特定的完整运算过程。以后,巴贝奇又设计了一种程序控制的通用分析机。这种分析机由3部分构成:第1部分是保存数据的齿轮式寄存器,巴贝奇称为“堆栈”,它与差分机类似,但计算不在寄存器内进行,而是由新的机构来实现;第2部分是对数据进行各种运算的装置,巴贝奇命名为“工场”;第3部分是对操作顺序进行控制,并对所要处理的数据及输出结果加以选择的装置。为了加快运算的速度,巴贝奇设计了先进的进位机构。他估计使用分析机完成一次50位数的加减法只要1s,相乘则要1min。同时,在多年的研究制造实践中,巴贝奇写出了世界上第一部关于计算机程序的专著。分析机是现代程序控制计算机的雏形,设计理论非常超前,但限于当时的技术条件而未能最终形成产品。

图1-4 巴贝奇发明的差分机和分析机复制品模型(1822年)

5.爱达与程序设计

爱达(Augusta Ada Byron,1815—1852)是著名英国诗人拜伦之女,她对数学有极强的兴趣。1842年,爱达花了9个月时间翻译意大利数学家米那比亚(Luigi Menabrea)论述巴贝奇著作《分析机概论》的备忘录。在爱达的译文里,她附加了许多注记,详细说明了用计算机进行伯努利数的运算方式,这被认为是世界上第一个计算机程序,因此,爱达也被认为是世界上第一位程序设计师。巴贝奇在他的著作《经过哲学家的人生》中讲到:“我认为她(译注:爱达)为米那比亚的备忘录增加了许多注记,并加入了一些想法。虽然这些想法是由我们一起讨论出来的,但是最后写进注记里的想法确确实实是她自己的构想。我将许多代数运算的问题交给她处理,这些工作与伯努利数的运算相关。在她送回给我的文件中,修正了我先前在程序里的重大错误。”

爱达在文章中创造出了许多巴贝奇也未曾提到的新构想,例如,爱达曾经预言:“这个机器未来可以用来排版、编曲或是各种更复杂的用途。”爱达建立了循环和子程序的概念,为计算程序拟定过算法,写作了第一份“程序设计流程图”。

6.布尔与数理逻辑

英国数学家布尔(G.Boole,1815—1864)的第一部著作是《逻辑的数学分析》。1854年,布尔又出版了《思维规律的研究——逻辑与概率的数学理论基础》。凭借这两部著作,布尔建立了一门新的数学学科:布尔代数。布尔代数建立了一个完整的二进制数计算理论体系。

现代计算机理论的一个基本要求是所有信息都可用符号编码,而最简单的编码是采用二进制。我们平时接触的各种复杂事物的信息都可以用简单的0、1表示吗?就算是表示出来了又通过哪种方式进行运算,才能得到我们想要的结果呢?布尔完成了这项伟大的工作,他将人类的逻辑思维简化为一些二进制数学运算(布尔代数),发明了用二进制语言描写和处理各种逻辑命题。虽然计算机科学的发展证明了布尔代数的意义重大,但当时布尔的工作并没有得到充分的重视。