程序史記:從巴貝奇、愛達(dá)到圖靈

書架上一直放在一本《信息簡史》,最近終于讀完了。這是一本從信息的視角來描述其進化史的書,一本充滿了技術(shù)性描述的科普性書籍。也不乏一些有趣的故事,其中就有那么幾個人,他們實際是和計算機和程序有關(guān),而計算機和程序在今天這個信息時代早已是信息的載體和處理者了。

十八世紀(jì)

查爾斯·巴貝奇(Charles Babbage),90 后,恩,一個十八世紀(jì)的 90 后(1791 年生),出生于工業(yè)革命的高峰時期。那時英國工業(yè)革命的巔峰作品 —— 蒸汽機,在他出生前沒幾年才剛剛被發(fā)明出來。

那時,是一個崇尚機械的年代。人們相信機械的力量是可以做到一切的時代,這源自于工業(yè)革命的進步帶來了蒸汽機和各種機械裝置,將人們從各種勞動中解放了出來。就是在這樣的時代背景下,巴貝奇成長起來,開始了對數(shù)學(xué)制表的機械化研究,并逐漸成為活躍于十九世紀(jì)的數(shù)學(xué)家、發(fā)明家和機械工程師。

十九世紀(jì)

一天,巴貝奇坐在家里的陽臺上休息,不知不覺被對面紡織女工的工作吸引了目光。他不由得看的出了神,他看著紡織女工紡織布匹的過程,把一種紙上的花紋圖案通過紡織過程轉(zhuǎn)移到了織物之上。近來,他一直在思考用機械裝置進行數(shù)學(xué)計算,這似乎一下?lián)糁辛怂?,看到了曙光?/p>

引發(fā)巴貝奇想象的不是布匹的紡織過程,而是將布匹的圖案從一種媒介轉(zhuǎn)換到另一種媒介的編碼過程。那是一臺紡織用的雅卡爾提花機,這臺機器通過編碼并存儲在打孔卡片上的指令進行控制。在這臺紡織提花機的啟發(fā)下,巴貝奇發(fā)明了「差分機」,一臺能大幅提高乘法運算速度和提高對數(shù)計算精度的機器。

1832 年,17 歲的愛達(dá)(Ada),在老師的帶領(lǐng)下去參觀了巴貝奇的「差分機」,并被其深深的迷住了。這是一臺能自動計算數(shù)學(xué)題的機器,而當(dāng)時愛達(dá)正醉心于數(shù)學(xué)學(xué)習(xí)。她的母親為她請的老師摩根正是計算機數(shù)學(xué)基礎(chǔ)布爾代數(shù)的創(chuàng)始人之一。那時的英國科學(xué)風(fēng)氣盛行,許多婦女都在雜志上發(fā)表文章探討數(shù)學(xué)問題,而愛達(dá)也在那時展現(xiàn)出了非凡的數(shù)學(xué)天賦。

在見到「差分機」的第二年,愛達(dá)和巴貝奇正式見了一次面。當(dāng)時,巴貝奇奇雄心勃勃的設(shè)計了一個新的機器:「分析機」。他將自己的想法和設(shè)計詳細(xì)地講給愛達(dá)聽,愛達(dá)認(rèn)真地聽完巴貝奇的計劃,并仔細(xì)看了他的文稿,深深地為之陶醉。她認(rèn)為這的確是一個將要改變世界的偉大設(shè)想,她表示一有機會就將親身參與這項工作。從此愛達(dá)與巴貝奇開啟了一段持續(xù)十八年的忘年之交。

巴貝奇的「分析機」,它的機械結(jié)構(gòu)被分成了「計算單元」和「存儲單元」兩個部分。其中「計算單元」不僅內(nèi)建四則運算,還可以存四組不同的運算方程式,用穿孔卡片(來自雅卡爾提花機的靈感)載入到機器里。從某些方面來說,它的計算、存儲、輸入輸出(I/O)三項分離設(shè)計,和今天的計算機設(shè)計完全一致。只是可惜他的思想太超前,無論他如何努力游說、路演也沒有人投資給他建造這臺機器所需的資金。所以,「分析機」的設(shè)計僅停留在紙面上,從沒做成過實體機。

就是在這樣一臺從未做成實體,停留在想象和紙面的機器上,愛達(dá)開始了她的編程之旅。她設(shè)計了一個過程,一組規(guī)則以及一系列運算。在一個世紀(jì)后,這些過程、規(guī)則和運算會被稱為一種算法或一個計算機程序。當(dāng)時,所有有關(guān)編程概念的術(shù)語,包括:算法、循環(huán)、條件、分支、遞歸,在那個時代都還沒有發(fā)明出來。而愛達(dá)卻已深刻的理解了所有這些名字背后的實質(zhì)。她設(shè)想的算法是遞歸的,它循環(huán)運行,巴貝奇曾將這種方式稱為“機器咬尾巴——團團轉(zhuǎn)”。

她就是這樣為一臺還不存在的機器編程,在頭腦中編程。這些程序包括計算三角函數(shù)程序、級數(shù)相乘程序、伯努力數(shù)計算程序等等,今天這被視為是“第一套計算機程序”。因此,愛達(dá)被世人稱為第一位程序員。1981 年,美國國防部把它花了 10 年開發(fā)的一種計算機語言命名為 Ada,以此紀(jì)念她。

有時覺著歷史上的很多天才總是不長命,而愛達(dá)還出生于一個天才家庭。她有一個比她更有名的父親 —— 英國大詩人:拜倫。但父親在其剛滿月不久時就和她母親離婚,從此離開英國再未相見。拜倫一直想找機會回到英國見見自己的女兒,但人生無奈,愛達(dá) 8 歲那年他還沒來得及回去,便已離世。有時讀著拜倫留下的詩句:

如果我們再相見,事隔經(jīng)年。我將何以招呼你,以眼淚,以沉默。

在想,如果他們真有再相見時,這也許就是愛達(dá)的心境吧。愛達(dá)開始和巴貝奇共同構(gòu)建夢想的那年,她 18 歲,18 年后,愛達(dá)因病去世,和拜倫一樣都是 36 歲去世。根據(jù)她的遺愿,她被葬于諾丁漢郡其父親身邊,終于再見了。在她短暫一生的最后時光,她留下了一個關(guān)于程序的夢想:

我以我自己的方式遲早會成為一名獨裁者。我現(xiàn)在可不會說,但我希望,它們將是紀(jì)律嚴(yán)明、異常和諧的軍隊 —— 由大量的數(shù)構(gòu)成,伴著軍樂以勢不可擋的力量行進。

至于巴貝奇的那臺分析機,愛達(dá)離世后它便逐漸淡出視線,埋塵歷史。它在重新被人記起之前,先得被人遺忘。巴貝奇在其生命的最后幾年,可能感覺時日無多,再不可能等到這臺機器被造出來的那一天,他寫道:

如果有人在未被告誡以我的前車之鑒的情況下,試圖嘗試這項如此了無指望的工作,并通過完全不同的原理或更簡化的機械手段而成功實現(xiàn)了一臺可與整個數(shù)學(xué)分析部門相當(dāng)?shù)臋C器,那么我不怕把自己的名譽托付給他,因為他肯定會完全理解我當(dāng)年努力的性質(zhì)及其成果的價值。

恩,這個人會出現(xiàn)的,但還需要再等一百年。

二十世紀(jì)

一個世紀(jì)后,1936 年,還在劍橋國王學(xué)院就讀的阿蘭·圖靈發(fā)表重要論文《論可計算數(shù)及其在判定問題上的應(yīng)用》,正式提出了“算法(algorithms)”和“計算機(computing machines)”這兩個核心概念,一直讓我們受用到今天。

1950 年,圖靈接著發(fā)表了論文《計算機器與智能》(Computing Machinery and Intelligence),為后來的人工智能科學(xué)提供了開創(chuàng)性的構(gòu)思。他提出了著名的「圖靈測試」:指出如果第三者無法分辨人類與人工智能機器反應(yīng)的差別,則可以論斷該機器具備人工智能。圖靈首次從行為主義的角度給出了人工智能的定義。

前兩年有部電影《模擬游戲》就是基于圖靈的傳記改編的,電影實際只刻畫了圖靈波瀾起伏的人生中短短的一小段。而且改編的也不一定完全符合史實,但里面有一段情節(jié)倒是很讓人觸動:圖靈閃耀光芒的時期,正是在打第二次世界大戰(zhàn)的時代。二戰(zhàn)背景下如圖靈這樣的技術(shù)工作者,處在一個兩難境地 —— 破解不了德軍密碼,每時每刻都有人在戰(zhàn)場上死亡;最后破解了密碼,獲得了情報,卻只能看著卻不能告知友軍轉(zhuǎn)移。

圖靈也許就是巴貝奇一直寄希望出現(xiàn)的人,值得他托付名譽的人。用一種和他設(shè)想的完全類似的原理,但卻非機械化的手段,成功設(shè)計出了可以媲美十九世紀(jì)整個數(shù)學(xué)分析部門的計算機器?!笀D靈機」是圖靈在頭腦思維中的構(gòu)想,但很快以此為基礎(chǔ)的計算機就被發(fā)明了出來。在還沒有計算機的時代,圖靈不但探索了計算機能做的事,還指出了計算機永遠(yuǎn)不能做到的事。他為計算機領(lǐng)域奠定了不可埋沒的基礎(chǔ),沒有他也許就沒有計算機的今天。

...

從巴貝奇的分析機到圖靈的計算機正好一百年,而從圖靈提出的人工智能距今已快 70 年,未來二三十年會怎樣呢?今天人們對人工智能的追捧,似乎就像巴貝奇年代對機械的崇尚,誰又來書寫二十一世紀(jì)的傳奇呢?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 附錄1 計算機簡史 1.0 一切皆是映射 計算機領(lǐng)域中的所有問題,都可以通過向上一層進行抽象封裝來解決.這里的封裝...
    光劍書架上的書閱讀 1,446評論 0 10
  • 無處不在、無所不能的電腦,已歷經(jīng)了50多個春華秋實。50余年在人類的歷史長河中只是一瞬間,電腦卻徹底改變了我們的生...
    闊爺閱讀 3,731評論 0 12
  • 附錄A 計算機的0和1 1.0 一切皆是映射 計算機領(lǐng)域中的所有問題,都可以通過向上一層進行抽象封裝來解決.這里的...
    光劍書架上的書閱讀 2,660評論 0 6
  • 今天來了14位孩子。簫晨赫希請假,家靖輸完液來了后不進教室就吐了,媽媽就把他帶回去了,文凱沒來。晨操時孩子做的很好...
    劉秀麗a閱讀 203評論 0 1
  • (鳥醬家的書,三月學(xué)習(xí)畫的(?>ω<*?)) 喜歡這個廚娘,但是手,腿和鞋子好難畫(?_?) 老拿橡皮擦來擦去。。...
    克服G的彈性魅力閱讀 358評論 2 1

友情鏈接更多精彩內(nèi)容