分析機

機械式通用計算機

分析机(英語:Analytical Engine)是由英国数学家查尔斯·巴贝奇设计的一种机械式通用计算机。从1837年首次提出这种机器的设计,一直到他去世的1871年,由于种种原因,这种机器并没有被真正地制造出来。但它本身的设计逻辑却十分先进,是大约100年后电子通用计算机的先驱。

亨利·巴贝奇于1910年制造的分析机磨坊(Mill)模型,现存于倫敦科學館

设计

查尔斯·巴贝奇最初尝试的所谓差分机,可以通过求解差分来计算对数表和三角函数表,然后能近似计算多项式。由于巴贝奇与他的首席工程师约瑟夫·克莱芒英语Joseph Clement起了争执,英国政府就撤回了这项项目的资金,差分机也因此没能完成[1][2][3]。在这期间,巴贝奇意识到建造一种更加通用的机器(即所谓的分析机)是可行的,于是便于1833年开始了分析机的设计[4][5]

分析机由蒸汽机驱动,大约有30米长、10米宽。它的输入由程序和数据组成[6][1],并使用打孔卡输入,这种输入方法被当时的织布机广泛采用[7]。分析机通过一台打印机、一个弯曲的绘图仪和一个铃铛输出[1],也可以在纸上打孔以便日后读取。分析机采取普通的十进制定点计数法[1]

它的“記憶體”大约可以存储1000个40位的十进制数(共约16.2kB)[8]。有一个算術邏輯單元可以进行四则运算、比较和求平方根操作[9]。刚开始研制的时候,分析机的外观被普遍认为和差分机相似 [10]。1858年的图纸呈现了一个有规律的网格布局[11]。与现代计算机的中央处理器(CPU)类似,其算術邏輯單元使用的微程序存储在插在被称为“桶”的滚筒上的支柱中,这为用户指定更加复杂的运算提供了便利。[12]

分析机使用的编程语言与今天的汇编语言类似,支持循环语句和条件分支,因此这门语言被认为是圖靈完備的。分析机采用三种不同的打孔卡和读卡器来区分算术运算、数字常量和存储的指令,以此实现了数字在存储器和运算单元之间的加载和存储操作。巴比奇在1837至1840年间写下了24份程序,并在之后又写了一份[7][13]。这些程序可以计算多项式、迭代公式、高斯消去法伯努利数[7][14]

参见

参考

  1. ^ 1.0 1.1 1.2 1.3 Collier 1970,第chapter 3頁.
  2. ^ Lee, John A.n. International Biographical Dictionary of Computer Pioneers. Google Books. [2012-08-01]. (原始内容存档于2020-07-09). 
  3. ^ Balchin, Jon. Science: 100 Scientists Who Changed the World. Google Books. [2012-08-01]. (原始内容存档于2019-06-04). 
  4. ^ Dubbey, J. M.; Dubbey, John Michael. The Mathematical Work of Charles Babbage. Cambridge University Press. 2004-02-12: 197. ISBN 9780521524766 (英语). 
  5. ^ Bromley 1982,第196頁.
  6. ^ Menabrea & Lovelace 1843.
  7. ^ 7.0 7.1 7.2 Bromley 1982,第215頁.
  8. ^ Bromley 1982,第198頁.
  9. ^ Bromley 1982,第211頁.
  10. ^ Bromley 1982,第209頁.
  11. ^ The Babbage Pages: Calculating Engines. Projects.ex.ac.uk. 1997-01-08 [2012-08-01]. (原始内容存档于2008-03-12). 
  12. ^ Tim Robinson. Difference Engines. Meccano.us. 2007-05-28 [2012-08-01]. (原始内容存档于2020-10-05). 
  13. ^ Bromley 1990,第89頁.
  14. ^ Bromley 2000,第11頁.