怎麼造電腦?(1/2)

分享至

怎麼造電腦?(1/2)

撰文/Giles Sparrow|譯者/易思婷
轉載自《BBC知識》2014年6月第34期


內容概說

計算的基礎發軔於十九世紀,但一直要到第二次世界大戰為了破解加密的德語訊息,發展出第一部完全電子化的機器後,才一路發展出現在我們所用的電腦。


計算裝置在無法追溯的久遠年代就已經出現了。古時倖存下來的計算裝置中,最複雜、最令人驚艷的,當是1900年從希臘沉船中發現的安提基瑟拉儀(Antikythera Mechanism)。這台密密麻麻滿布著小齒輪的驚人裝置,估計是用來觀察日月星辰的運轉。許多人認為安提基瑟拉儀就是早期的電腦,但今日我們談到「電腦」,通常指的還是二十世紀中期發展出來的多功能機器,這些機器聽從程式碼的指示,使用字串和數字執行一連串的邏輯運算。

根據以上定義,現代電腦真正的祖先,應該是法國數學家Blaise Pascal在1642年發明的加法機械裝置。這台機器後來被稱做帕斯卡加法器(Pascaline)。用加法器上半部的金屬轉盤來輸入數字,這台設計精巧的機器便會利用內部的轉輪,把這些數字相加起來。1671年時,德國數學家萊布尼茲製造出更精密的「階梯式計算器」(Stepped Reckoner),不但可以加減高達十六位的數字,還可以乘除高達八位的數字。

一直到二十世紀初期,人們依然廣泛使用這些計算裝置,但是它們的目的非常單一,功能也極為有限。今日,我們之所以能用程式來擴展計算裝置的功能,得追溯到另一個意想不到的領域。

編織夢想

(圖片來源:Science and Society , Getty, Alamy BT Archive, Bell Labs)

法國紡織工人、業餘發明家Joseph Marie Jacquard把他在紡織機上的經驗融入發明。1801年,他在巴黎的工業展中推出了一款紡織機,它可以「讀取」一系列打孔的卡片,來控制織出來的布疋花樣。這款紡織機是紡織界劃時代的革命,短短的十年內,法國境內就有至少一萬一千台這樣的紡織機。最重要的是,它使我們了解到,只要能調整機器的構造,它們就能從事不同的任務,而這概念拓廣了人們對於計算領域的想像。

1822年,英國數學家暨博學家Charles Babbage在對皇家天文學會所做的簡報中,提出「差分機」(Difference Engine)的設計及運作說明。這台機器可以從事極複雜的運算,速度和準確度遠遠凌駕任何人。Babbage建議,這台機器可以協助建立行星運轉表格,提供當時導航所需要的資料。這個計畫引起英國政府的興趣,並在隔年開始投入建造。但是由於計畫相當複雜,在1830年代中期,Babbage和工程師Joseph Clement終於因為成本的問題而宣告計畫中止。

在1842年英國政府完全砍掉給Babbage的資助之前,他已經開始執行一個野心更大的設計,從現代的角度來看,它可說是最早具備電腦全方位功能的裝置。這具「分析機」(Analytical Engine)的確相當複雜,可以執行的任務超過簡單的代數運算。比如說,它可以根據是否符合某條件句來決定要不要執行某些動作;可以使用一組打孔卡對這台機器下達命令,處理用另一組打孔卡輸入的資料;然後還可以使用簡單的列印機或圖形繪製機輸出結果。它內部負責計算的架構規格統一,由數個單元構成,另外也有記憶體能存取數值。Babbage取得了一份簡單的演算法範例,也許是Ada Byron在她的機器上使用的那一份。Ada是詩人拜倫的女兒,也是勒芙蕾絲伯爵夫人(Countess of Lovelace),她是才華洋溢的數學家,一般公認為世界上第一位程式設計師。

可惜,1871年Babbage辭世,此前他只建構完成了部分的分析機。他的兒子亨利找不到金援繼續這個計畫,Babbage的想法於是塵封了數十年之久。

然而,1889年美國發明家暨統計學家Herman Hollerith也想出用打孔卡來儲存資料的點子。他的電子機械「製表機」(tabulator)在電流通過卡片上的小孔時,記錄電流的脈動,製表機於是可以高速地讀取打孔卡片。Hollerith發明的這具高效率的機器改變了處理和運算資料的方式。1890年時它被拿來處理美國的人口資料,而且提早數個月完成任務。Hollerith成立的公司最後變成商業巨人IBM的核心部分。

Hollerith的製表機內有一個重要的概念:二元系統,這個系統只有兩種狀態:「開」與「關」,分別代表數字「1」和「0」。十七世紀晚期,萊布尼茲首度探究二元數值系統,發現二元系統可以簡化某些計算。(待續)

(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)

(Visited 15 times, 1 visits today)

分享至
views