分析機

機械式通用計算機

分析機(英語: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頁.