現代計算機的「兩次發明」:萊布尼茨的齒輪計算器與巴貝奇差分機

2020-12-13 21世紀商業評論

和人類演化一樣,現代計算機來自一系列繁複雜亂的歷史進程。用生物學打比方,現代計算機的DNA共生於兩種完全獨立的思想,在過去200年中,隨著經濟和社會環境的變化最終摻雜在一起。

其中,第一個思想來自我們一直以來本能的渴望,渴望創造能像生命體一樣行為的人造物;另一個思想來自對於邏輯學的研究,我們驚奇地發現,邏輯學和數學是一對雙生子。

兩種思想,最終融為一體。

機械造物者

許多發明家和工程師以製造娛樂性的自動機械為時尚。

18世紀末法國發明家雅克.德.沃康松設計製造了一個能消化的機器,「消化鴨子」:給這隻機械鴨子餵食穀物,它看起來會消化並且排洩。

19世紀初,瑞士機械師亨利.梅拉德特製造了一臺自動機械,會畫四幅畫,寫三首詩。

在這個階段,自動機械是在模仿自然,它們是一批人工控制論系統。與此同時,古希臘著名思想家亞里斯多德關於邏輯作為運算的思想引發了一個問題:如何將這樣的過程自動化?

德國的哲學家、數學家萊布尼茨創造了微積分、二進位數字系統等發明。1679年,他夢見了一臺機器,這臺機器用彈珠表達二進位數字,這些彈珠按打孔卡片來移動,操作卡片和彈珠,就可以完成自動化的機械計算。萊布尼茨假設任何計算機器都應該有可操作的移動部件,可以排序和計數。

現代計算機和萊布尼茨想像的非常接近。

電子脈衝就像彈珠,以來回移動表示不同電壓,現代的移位寄存器控制著輸入和輸出以便移動數據,就像是萊布尼茨的打孔卡片。

與此同時在法國,數學家布萊士.帕斯卡和德國天文學家威廉.施卡德一起,製造了第一臺可以使用的機械計算器。經過諸多試驗後,帕斯卡機得以問世,1645年由帕斯卡本人向公眾演示。這是一臺機械計算器,可以加減任意兩個數字,通過5個輪子,各可以輸入0到9的數字。

以今天的標準,這個機器用起來費勁兒,但是在17世紀中葉,當人們需要快速加總很大的數字時它就非常合理了。

萊布尼茨為帕斯卡機加上了乘法和除法運算。1685年,他設計了齒輪計算器,以及「萊布尼茨輪」,這個機器通過特定的設置可以完成計算。這些設置都是靠著齒輪的設計,以及計數輪的齒之間遞增的距離完成的。

萊布尼茨的輪子和帕斯卡的齒輪組之後都變成了「四則運算計算器」的關鍵零件,這是1851年第一臺可以進行多步計算的機械計算器。

這臺機器賣出了數百萬臺,並且在全世界的辦公室裡廣泛使用。實際上,直到20世紀70年代中期電子計算器發明之前,萊布尼茨式的發明還在用於自動計算。

過去數個世紀,用來製造自動機械的技術和關鍵的機械零件如今用來製造機械計算器了,這種轉型預告了20世紀末機器人的發明,而機器人變成了仿人形或仿動物形自動機械的下一階段。

而且,這種轉型有著文化因素,那就是計算機的擬人化:希望計算機器可以有「大腦」一樣的能力,像人一樣的行為,這種觀念之後會在人工智慧研究中再一次出現。

巴貝奇的差分機和帕斯卡、萊布尼茨的計算機器一道,都是另一類自動機器的前身,後者將會與符號邏輯相遇、融合。這是技術和傳統的偉大會合,一個技術史上真正的「奇點」,它從古代亞歷山大裡亞的自動機械出發,轉變成了18世紀末的計算機器。

曾經用來模擬和模仿生命的機器,現在用來「咀嚼」數字,在一個快速變化並將要開始工業化的世界,這些計算機器是必不可少的,它們滿足了高效、零錯誤算數計算的需求。

在這一歷史的交匯時刻,符號邏輯已經因為布爾和弗雷格而得到充分的發展了。符號邏輯和這一類計算機器相遇,假以時日,一類新的技術將會湧現:數字的、電子的、通用的計算機。

兩類技術歷史性的融合,機械和物理的技術、邏輯數學的符號,決定了現代計算機的雙重本性,於是它分離成了硬體和軟體。無論如何,在18世紀末,絕對無法預知計算機的演化會最終走向分離,而當分離發生了,通用計算機不得不被發明了兩次。

巴貝奇的妙想

查爾斯.巴貝奇的工程設計區分了程序和可以執行程序的機器,他是這樣做的第一人。為此,他被推崇為「現代計算機之父」。

查爾斯.巴貝奇,科學管理的先驅者

但他並不是一次就完成了這個創新的設計,而是花費數年忙於各種工作,直到他從紡織業找到了技術解決方案,並且將之應用於自動解決一般數學問題。

巴貝奇於1791年出生在倫敦,此時大不列顛的漢諾瓦王室已經建立了歐洲最為自由民主的制度。民主、產權和法律成了創造空前財富的引擎,在一個新的世界秩序下,在工業革命的開端,它們逐漸成形。

在19世紀初,歷史上第一次,海運、鐵路、國際銀行和貿易已經連接了我們星球上每一塊適宜居住的大陸。根據人類學家伊恩.莫裡斯的分析,工業革命是人類歷史上最重要的事件。

整個世界為之改變,包括我們社會組織的複雜程度、我們建造城市的方法、發動戰爭的手段、我們如何分享和處理信息,以及我們可以獲取和使用的能量,引發工業革命的關鍵技術是蒸汽機。

詹姆斯.瓦特精巧地改進提升了蒸汽機的效率,這一改進於1775年問世,以機械的力量改變了全球經濟。許多歷史學家稱這一時期為「第一次機器革命」,此時機械成了人類社會不可分割的一部分,並永遠改變了社會。

這是巴貝奇生活的時代,他的出生地大英帝國是第一個工業化的國家,也是在經濟上和海軍實力上無可匹敵的帝國,而大英帝國財富的核心是製造業,核心的核心又是紡織業。

巴貝奇對製造一點兒也不陌生。

1832年他出版了一本描述工業生產組織的著作,由此成了名人。書中,他探索了如何最優地組織工業生產,討論了勞動分工、利潤分配和工廠的合理設計等前衛思想。

這是多年來造訪工廠和研究製造過程的結晶,正是這些知識和洞察啟發了巴貝奇設計他的第一臺機械算數機器:差分機一號。

巴貝奇的「差分機」

在算數計算和製造過程之間存在著明顯的共同點。兩者都可以拆分成小的、自給自足的單元,以便單獨處理或批處理。這種「批處理」簡化了整個過程的複雜度,讓過程變得可控。

同時,一個單元處理的輸出是下一個單元的輸入。製造的過程和數學的、邏輯的過程類似,都是一系列的步驟,即算法。而且,製造過程是遞歸的:它們不斷重複自身,於是一個產品的許多備份就全部製造出來了。

質量是製造過程中另一個必不可少的要素,有必要檢查每一個製造的單元都有著最好的產出,因為它們又是下一個生產環節的輸入。

基於以上觀察,巴貝奇推測數字可以用和製造相近的過程來處理,通過算法產出新的數字。每一步計算都應該是算法的一個步驟,並且產出一個特定的數字作為輸出,以便檢查對錯。這樣,計算錯誤作為計算過程的質量的反映就可以最小化了。

巴貝奇還注意到,用於在工廠中推動機器的蒸汽機,也可以用於驅動計算機器。他關於未來的設計是打造一臺自動機器,可以計算數字並且總能提供正確答案,不會出錯。

就像「商品製造」,「計算製造」也應該是機械的,以蒸汽機推動,不受人類錯誤的影響,有能力無限地產出同樣完美的結果。

倫敦天文學會資助了巴貝奇,讓他得以將受到製造業啟發的計算機器製造出來。巴貝奇作為天文學會的成員,熟知帕斯卡和萊布尼茨的計算器,於是開始設計和製造英國的計算機器。

在當時,能夠計算對數和三角函數的機器設計的關鍵問題是除法和乘法,帕斯卡機和它的仿製品都做不到這兩點。為了解決這一問題,巴貝奇利用了微分方程的特性。

這些方程定義了兩個變量之間的關係。讓一個計算的輸出當作下一個計算的輸入,再通過簡單的加法或減法,微分方程就可以實現乘法和除法。使用微分方程和建造差分機一樣偉大。

顯然,遞歸函數以及反覆執行一個運算這一概念(或稱「循環」),與用機械計算有著不可分割的聯繫。控制論和複雜的數學此時融入了計算機器的演化,新的計算機和帕斯卡與萊布尼茨發明的那種簡單、線性的計算機器分道揚鑣了。

據說巴貝奇是個很難合作的人,1831年,他和工程師約瑟夫.克萊蒙特因為製造差分機的成本爭吵鬧翻。此時只製造了一個原型,就是現在展出在倫敦科學博物館的那一個。

巴貝奇堅持改進最初的設計,稱之為差分機二號。這第二臺機器最終在百餘年後的1991年才製造出來,並且真的成功進行了它最初的設計者展望的演算。不過,巴貝奇在計算機萬神殿中的地位並沒有因差分機的失敗而動搖。

1837年,他已經著手設計另一臺革命性的機器,可以進行任何演算。他叫這臺機器為「分析機」,像差分機一樣,分析機也受到了製造業的啟發。

邏輯的嵌入

在研究英格蘭的製造業時,巴貝奇注意到了紡織業的偉大發明。

1801年,法國發明家雅卡爾的提花機使用打孔卡來讓機器自動編制非常複雜的紋樣。機器的機械零件和織物的紋樣一分為二,提花機預示了計算機硬體與軟體的二分法。

一邊是用於執行操作的物理媒介,一邊是作為信息的紋樣,兩者之間是操作的指令集,或者操作的客體。打孔卡可以連在一起,形成更長的紋樣的帶子,作為提花機的輸入來執行。

巴貝奇第一次將打孔卡和紙帶引入了計算領域。

打孔卡在一個世紀後會被計算機先驅重新發明,而附有符號的紙帶則被圖靈利用,定義了現代計算機的數學概念。

有趣的是,巴貝奇設計的分析機如同一臺差分機傾斜著放在另一臺上面。這個樣子就是兩臺差分機互為鏡像放置,一臺的輸出是另一臺的輸入。

這種對應的設計讓它能夠加入邏輯分支表達式,例如「如果A則B」,以及加入循環。運算可以反覆多次,結果可以有邏輯分支,這樣就可以用連接在內部的差分機做進一步處理。

這是一個控制論式的設計,這一創新的、自我指涉的特點,讓分析機做到了「圖靈完備」,也就是說這是一臺可以模擬任何機器的機器。

不幸的是,巴貝奇從來沒有完成這臺他夢想的機器,儘管直到1871年去世之前他還在修補最初的設計。

巴貝奇還沒來得及完成一本手冊以記錄分析機的功能。幸好,1842年義大利數學家、軍事工程師路易吉.梅納布雷亞用法語寫了一篇機器的說明。

一年後,著名英國詩人拜倫男爵的女兒阿達.洛夫萊斯(數學家,電腦程式創始人)把這篇說明翻譯成了英語。在她的翻譯中,還有第一則電腦程式,這讓阿達.洛夫萊斯成了軟體的發明人。

阿達.洛夫萊斯,電腦程式創始人

阿達.洛夫萊斯是拜倫男爵唯一的合法子女。她出生後一個月她的父親就遺棄了她和她母親去義大利旅行,在那個夏天的日內瓦湖畔遇見了珀西.雪萊和瑪麗.雪萊,阿達再也沒見過她父親,8年後,拜倫參加希臘獨立戰爭時死於希臘。

儘管是一個缺乏雙親之愛的多病小孩,阿達卻表現出高超的學習才能,並且對技術有著強烈的好奇心。12歲時,她迷上了飛行,於是開始試驗各種人造翅膀,研究鳥類的解剖,還寫了一本名為《飛行學》的書,在書中她畫下了自己的想法和發現。

1833年,她第一次遇見巴貝奇,一下就迷上了差分機。巴貝奇對她的數學才能印象深刻,稱呼她為「數學女巫」,在她翻譯的麥納波利分析機說明的注釋裡,阿達留下了計算機歷史上最重要的文獻之一。

欽佩於朋友設計的機器的潛能,她寫道:「巴貝奇先生相信通過他的機器,能夠在三分鐘內產出任意兩個20位數的計算結果。」她又演示了如何利用分析機,通過編寫一個可執行的算法,自動計算一系列的伯努利數。這一算法被認為是人類寫出的第一個軟體程序。

分析機和阿達.洛夫萊斯的第一個程序讓歷史學家和玄幻小說作家著迷不已。如果英國財政沒有停止資助巴貝奇的夢想和設計,如今的社會將會是什麼樣子的?分析機是否會把計算時代的到來提前百年?

這當然是架空歷史類作者愛問的問題,他們也確實為此創作了許多部小說、短篇故事和漫畫。不過關於這個我們棲身於分析機之間的宇宙,我們所知有限,現代計算機架構的主要功能要等到近一個世紀後才發明,在這個架構中,軟體和硬體是分離的。

這麼看來,分析機如同一次技術奇點,在一個還沒準備好如何使用它的世界誕生了。如同希臘化時代的一些發明,比如希羅的蒸汽機、依巴谷的安提基特拉機械,巴貝奇的偉大發明超越了他的時代。

需要論證的是,我們是否還未完全理解這種分離的重要性,極有可能還需要數十年才能真正理解,就像是瓦特的蒸汽機,在18世紀末工業革命中開啟了「第一次機器革命」,現代計算機正在通過經濟和社會的數位化轉型進入「第二次機器革命」。

在巴貝奇從差分機到分析機的高明一躍之時,第二次機器革命的種子已經孕育。

伴隨著打孔卡的使用,這種電腦程式的物質實體還將延續到20世紀初。但是隨著計算機工程學的進展,打孔卡過時了,程序明顯變成了「信息的模式」。

隨著符號邏輯變成了計算機語言,「程序」和「數據」都變得完全非物質化了。物質的單元「原子」,變成了信息的單元「比特」。程序與數據從機械讀卡器和卡片變成了純粹非物質的形式,軟體如同笛卡兒的精神實體,超越了硬體,變成了機械的靈魂。

在巴貝奇去世10年後,喬治.布爾發現思維可以通過符號邏輯自動化。他的發現以及弗雷格通過謂詞邏輯所做的擴展,建立了現代計算機語言的基礎。

艾倫·圖靈,英國數學家、邏輯家

最終,圖靈將邏輯和計算機器永遠地結合在了一起。

圖靈機實際上是一臺分析機,處理寫在紙帶上的邏輯符號,處理過程就是執行一系列的規則,執行「程序」。

圖靈機和巴貝奇與洛夫萊斯想像中的機器唯一的不同就在於圖靈機可以不在意它處理的符號形式,這些符號可以是數字、定理或者其他邏輯表達式。這就是計算機軟體。

另一方面,計算機硬體也處於童年、青春期和成年期的變化之中。獨立於巴貝奇,美國發明家赫爾曼.何樂禮在19世紀80年代末也發明了用打孔卡存儲數據的方法。

從19世紀末到20世紀30年代末,許多看似無關的發明創造都參與了定義現代計算機的過程。

這些技術,不論是電動機械還是模擬,在不遠的未來都被很快取代了,更快的、全電子的、數字的計算機使用真空管和複雜的電路設計。巴貝奇設計分析機時不具備的社會經濟條件如今齊備了。

想像中的智慧機器人

到了20世紀30年代,所有即將誕生的計算機革命需要的基礎技術都已經發明出來了,等待著機會在一次大爆炸中融合。

唯一欠缺的只有一個奇點時間,一個火花,欠缺一個事件:富裕社會大量投資金錢和智力來攻堅這些「咀嚼」數字的機器。

本文選編自《人類的終極命運-從舊石器時代到人工智慧的未來》,標題為編者所加,章節略有刪減;喬治.扎卡達基斯著;陳朝譯;中信出版社授權刊載,2017年10月出版。

相關焦點

  • ENIAC計算機你了解嗎?世界第一臺電子計算機,研製歷程困難重重
    但如果追溯計算機的發展淵源,計算工具都有其久遠的歷史。自古代結繩、記事、應用算籌、經過一代又一代的創造發明,到17世紀終於出現了第一代機械式計算機。由最初的機械式計算機到我們今天所認識的電子計算機,又經歷了一段漫長的發展過程。ENIAC為世界上的第一臺電子計算機。"ENIAC"意即「電子數值積分器和計算器"。計算的需要,自有了人類活動就已產生。
  • 計算機竟然擁有四千多年的歷史!
    萊布尼茨發明的新型計算機約有1米長,內部安裝了一系列齒輪機構,除了體積較大之外,基本原理繼承於帕斯卡。不過,萊布尼茨技高一籌,他為計算機增添了一種名叫「步進輪」的裝置。步進輪是一個有9個齒的長圓柱體,9個齒依次分布於圓柱表面;旁邊另有個小齒輪可以沿著軸向移動,以便逐次與步進輪嚙合。
  • 計算機是如何產生的?然而中國「計算機」早於西方一千多年!
    而我國第一個計算器,就是算盤,源於2600多年前,也是我國偉大的發明之一。其重量可以說與我國的4大發明來相提並論,並且一直使用至今,有的高手甚至將算盤計算要快於電子計算器。
  • 計算機的前身,萬事俱備只差……
    某一天,赫歇爾進來社團看見巴貝奇坐在桌前發呆,問他在想什麼,這句話便從他嘴中脫口而出。巴貝奇這句話反映出對數表令人又愛又恨的無奈。儘管萊布尼茲等人發明了各種計算器,卻因為造價太高,成為少數權貴才能擁有的收藏品。而對數尺雖然便宜實用,卻只能計算到三位數,所以若要做更精確的計算,對數表還是不可或缺的輔助工具。
  • 計算機的奠基者丨埃達和巴貝奇
    很遺憾,巴貝奇終其一生也沒能實現製造出分析機的願望,但他依舊當之無愧的是計算機先驅。直到今日,許多計算機書籍扉頁仍然刊登著他的照片,以表紀念。1815年12月10日出生的埃達,並沒有一個溫馨的家庭。兩周後她和母親一起拜訪了巴貝奇在倫敦的工作室,在那裡她看到差分機的演示以及對分析機的設計。埃達立刻為這些機器著迷,這給巴貝奇留下深刻的印象。此後她就與分析機結上了不解之緣。
  • 計算機的誕生:如果沒有這20個理科生,估計世界要倒退100年
    後來的1670年,萊布尼茨更是改進了Pasealine,使之成為一種可以進行加減乘數運算的計算機械,而且在改進的過程中,萊布尼茨指出,二進位也許更適合機械進行數學運算,從此奠定了現代計算機科學的理論基礎。
  • 她是數學奇女子,巴貝奇的好友,卻沒能等到計算機的輝煌時刻
    她從瑪麗那裡第一次聽到巴貝奇這個名字。19 世紀 20 年代初,巴貝奇開始研究差分機 ,「分析機的獨特之處在於,將雅卡爾織布機為調節錦緞織造中最複雜的圖案而設計的原理以打孔卡的形式引入其中,分析機可以藉此計算抽象代數……這樣形容或許最貼切:分析機「編織」代數模式,如同雅卡爾織布機編織花朵和樹葉。」這簡直不能用天才來形容,這分明是人類史上的先知。
  • 首都科學講堂 | 運籌·機巧:機械計算機發明史
    裡程計類似現代汽車中的裡程表,它有一個車的形制,測量員拉著車走的時候,轉動的車輪同時帶動這個車內的齒輪結構,每走一裡,就會有一個小球掉落到一個石盤裡,測量員只需數盒子裡小球數量,就知道走了多少路。他發明了一種非常巧妙的補碼機制,使減法運算被等價轉化成了加法。下面來談第二種機械計算機,即萊布尼茨機械計算機。該機器的實物,目前留存在德國漢諾瓦圖書館。作為德國著名數學家、哲學家,萊布尼茨重要的研究包括發明了微積分,同時,他對二進位也有深入研究,為後來的電子計算機的發展,提供理論上的預備。萊布尼茨還是一個新科學的積極倡導者,1700年,他籌建柏林科學院並擔任首任院長。
  • 計算器的發展史:博物館裡古代計算器極其複雜
    那當然是一些名人發明的機械計算器。第1個重要的輔助工具出現於1617年,蘇格蘭數學家約翰納皮爾發明了「納皮爾的骨頭」,構造非常簡單,一個方木盤左邊寫著行號,一大套算法的頂端寫有編號,下面一字寫著行號與編號的乘積。
  • 其實,計算機擁有兩千多年的歷史.
    為了解放大家的雙手,1642 年第一臺機械計算機 — 帕斯卡計算器應運而生。不過這計算器也方便不到哪兒去,只是將算盤中需要手指提供動力這事,交給了一個能控制齒輪運轉的手柄而已。而且帕斯卡計算器只能進行加減計算。但它畢竟是靠機械動力來驅動的,從某些方面來說,也是為之後的計算機進行連續運算奠定了基礎。之後數學家們開始思考,如何才能設計出能夠進行複雜計算的機器呢?
  • 為什麼中國人用算盤,西方人用計算機
    人們更熟悉電子顯示的計算器,更複雜的計算,則由電子計算機完成。 中國人很早就發展出了完備的計數系統、算數方法,為什麼沒有進一步發展,到最後卻是西方人先發明了計算機? 算盤,西亞人的發明 和一般人想像的不同,算盤並非中國人的發明。
  • 計算機編程領域最偉大的20個發明
    csdn1 第一臺計算機:「差分機」(1821年)「差分機」是1821年由英國政府委託科學家巴貝奇設計而成的,這臺機器能提高乘法速度和改進對數表等數字表的精確度
  • 「計算機第一人」查爾斯·巴貝奇與英國科學界的革新時代
    在他1810年就讀於劍橋大學三一學院之前,他已經從拉格朗日(Joseph Louis Lagrange)等數學家的書中自學了一些現代數學知識。對現代數學的了解讓他對大學課程中的數學課程產生了很大不滿。在巴貝奇上學的年代,英國的數學課程都是以牛頓式方法、符號來進行微積分運算的;而法國、德國等國家則採用萊布尼茲發明的大陸式方法(the Continental method),這比牛頓的符號更加簡練、清晰。出於民族主義情緒和墨守陳規的心態,萊布尼茲的大陸式符號一直沒能在英國普及,這也在一定程度上導致了英國數學發展的滯後。
  • 亞里斯多德是如何發明計算機的
    計算機的歷史經常被描述為實物的歷史,從算盤,到巴貝奇差分機,再到二戰期間的密碼破譯機。作為基本模塊,這些電路構成了所謂的算術邏輯單元,後者是現代計算機的關鍵部件。 香農的另一大成就在於,他是區分計算機邏輯層和物理層的第一人。這種區分對計算機科學來說十分重要,以至於現代讀者可能無法理解它在當時是何等富有洞見——這倒使我們想到了那句諺語,「一個世紀的哲學是下一個世紀的常識。」
  • 微積分到底是牛頓發明還是萊布尼茨發明
    微積分的發明,絕對是人類歷史上最重要的發明之一。著名數學家、計算機學家馮諾依曼就曾評價:「…微積分是現代數學的第一個成就,而且怎樣評價它的重要性都不為過…微積分比其他任何事物都更清楚地表明了現代數學的發端」。
  • 目標電子計算機
    這設計幾乎就是現代電腦的基本架構,唯一差別在於 Z1 的記憶單元只是用來貯存運算的數字,不像現代電腦的記憶單元也用來貯存程序。Z1 的運算程序和巴貝奇的分析機一樣,記錄在打孔紙帶上,再由讀取器傳送到控制單元(後來楚澤聽從朋友的建議,改用廢棄的電影膠捲,更便宜也更耐用)。
  • 史上最複雜的計算機?這才是最強大腦
    今天我們來認識一下機械史上最強大腦:英國數學家查爾斯·巴貝奇,他是可編程計算機的發明者,計算機的先驅。他設計過的計算機器有差分機、分析機和第二個差分機。差分機可謂是機械史最複雜的巔峰之作。 在英國政府的支持下,巴貝奇在 1822 年開始了差分機的設計和製造,希望將從計算到印刷的過程全部自動化,這樣就可以避免人為誤差。差分機使用有限差分方法來機器計算多項式函數的值。