程序史记:从巴贝奇、爱达到图灵
書架上一直放在一本《信息簡史》,最近終于讀完了。這是一本從信息的視角來描述其進(jìn)化史的書,一本充滿了技術(shù)性描述的科普性書籍。也不乏一些有趣的故事,其中就有那么幾個人,他們實(shí)際是和計(jì)算機(jī)和程序有關(guān),而計(jì)算機(jī)和程序在今天這個信息時代早已是信息的載體和處理者了。
十八世紀(jì)
查爾斯·巴貝奇(Charles Babbage),90 后,恩,一個十八世紀(jì)的 90 后(1791 年生),出生于工業(yè)革命的高峰時期。那時英國工業(yè)革命的巔峰作品 —— 蒸汽機(jī),在他出生前沒幾年才剛剛被發(fā)明出來。
那時,是一個崇尚機(jī)械的年代。人們相信機(jī)械的力量是可以做到一切的時代,這源自于工業(yè)革命的進(jìn)步帶來了蒸汽機(jī)和各種機(jī)械裝置,將人們從各種勞動中解放了出來。就是在這樣的時代背景下,巴貝奇成長起來,開始了對數(shù)學(xué)制表的機(jī)械化研究,并逐漸成為活躍于十九世紀(jì)的數(shù)學(xué)家、發(fā)明家和機(jī)械工程師。
十九世紀(jì)
一天,巴貝奇坐在家里的陽臺上休息,不知不覺被對面紡織女工的工作吸引了目光。他不由得看的出了神,他看著紡織女工紡織布匹的過程,把一種紙上的花紋圖案通過紡織過程轉(zhuǎn)移到了織物之上。近來,他一直在思考用機(jī)械裝置進(jìn)行數(shù)學(xué)計(jì)算,這似乎一下?lián)糁辛怂?#xff0c;看到了曙光。
引發(fā)巴貝奇想象的不是布匹的紡織過程,而是將布匹的圖案從一種媒介轉(zhuǎn)換到另一種媒介的編碼過程。那是一臺紡織用的雅卡爾提花機(jī),這臺機(jī)器通過編碼并存儲在打孔卡片上的指令進(jìn)行控制。在這臺紡織提花機(jī)的啟發(fā)下,巴貝奇發(fā)明了「差分機(jī)」,一臺能大幅提高乘法運(yùn)算速度和提高對數(shù)計(jì)算精度的機(jī)器。
1832 年,17 歲的愛達(dá)(Ada),在老師的帶領(lǐng)下去參觀了巴貝奇的「差分機(jī)」,并被其深深的迷住了。這是一臺能自動計(jì)算數(shù)學(xué)題的機(jī)器,而當(dāng)時愛達(dá)正醉心于數(shù)學(xué)學(xué)習(xí)。她的母親為她請的老師摩根正是計(jì)算機(jī)數(shù)學(xué)基礎(chǔ)布爾代數(shù)的創(chuàng)始人之一。那時的英國科學(xué)風(fēng)氣盛行,許多婦女都在雜志上發(fā)表文章探討數(shù)學(xué)問題,而愛達(dá)也在那時展現(xiàn)出了非凡的數(shù)學(xué)天賦。
在見到「差分機(jī)」的第二年,愛達(dá)和巴貝奇正式見了一次面。當(dāng)時,巴貝奇奇雄心勃勃的設(shè)計(jì)了一個新的機(jī)器:「分析機(jī)」。他將自己的想法和設(shè)計(jì)詳細(xì)地講給愛達(dá)聽,愛達(dá)認(rèn)真地聽完巴貝奇的計(jì)劃,并仔細(xì)看了他的文稿,深深地為之陶醉。她認(rèn)為這的確是一個將要改變世界的偉大設(shè)想,她表示一有機(jī)會就將親身參與這項(xiàng)工作。從此愛達(dá)與巴貝奇開啟了一段持續(xù)十八年的忘年之交。
巴貝奇的「分析機(jī)」,它的機(jī)械結(jié)構(gòu)被分成了「計(jì)算單元」和「存儲單元」兩個部分。其中「計(jì)算單元」不僅內(nèi)建四則運(yùn)算,還可以存四組不同的運(yùn)算方程式,用穿孔卡片(來自雅卡爾提花機(jī)的靈感)載入到機(jī)器里。從某些方面來說,它的計(jì)算、存儲、輸入輸出(I/O)三項(xiàng)分離設(shè)計(jì),和今天的計(jì)算機(jī)設(shè)計(jì)完全一致。只是可惜他的思想太超前,無論他如何努力游說、路演也沒有人投資給他建造這臺機(jī)器所需的資金。所以,「分析機(jī)」的設(shè)計(jì)僅停留在紙面上,從沒做成過實(shí)體機(jī)。
就是在這樣一臺從未做成實(shí)體,停留在想象和紙面的機(jī)器上,愛達(dá)開始了她的編程之旅。她設(shè)計(jì)了一個過程,一組規(guī)則以及一系列運(yùn)算。在一個世紀(jì)后,這些過程、規(guī)則和運(yùn)算會被稱為一種算法或一個計(jì)算機(jī)程序。當(dāng)時,所有有關(guān)編程概念的術(shù)語,包括:算法、循環(huán)、條件、分支、遞歸,在那個時代都還沒有發(fā)明出來。而愛達(dá)卻已深刻的理解了所有這些名字背后的實(shí)質(zhì)。她設(shè)想的算法是遞歸的,它循環(huán)運(yùn)行,巴貝奇曾將這種方式稱為“機(jī)器咬尾巴——團(tuán)團(tuán)轉(zhuǎn)”。
她就是這樣為一臺還不存在的機(jī)器編程,在頭腦中編程。這些程序包括計(jì)算三角函數(shù)程序、級數(shù)相乘程序、伯努力數(shù)計(jì)算程序等等,今天這被視為是“第一套計(jì)算機(jī)程序”。因此,愛達(dá)被世人稱為第一位程序員。1981 年,美國國防部把它花了 10 年開發(fā)的一種計(jì)算機(jī)語言命名為 Ada,以此紀(jì)念她。
有時覺著歷史上的很多天才總是不長命,而愛達(dá)還出生于一個天才家庭。她有一個比她更有名的父親 —— 英國大詩人:拜倫。但父親在其剛滿月不久時就和她母親離婚,從此離開英國再未相見。拜倫一直想找機(jī)會回到英國見見自己的女兒,但人生無奈,愛達(dá) 8 歲那年他還沒來得及回去,便已離世。有時讀著拜倫留下的詩句:
如果我們再相見,事隔經(jīng)年。我將何以招呼你,以眼淚,以沉默。
在想,如果他們真有再相見時,這也許就是愛達(dá)的心境吧。愛達(dá)開始和巴貝奇共同構(gòu)建夢想的那年,她 18 歲,18 年后,愛達(dá)因病去世,和拜倫一樣都是 36 歲去世。根據(jù)她的遺愿,她被葬于諾丁漢郡其父親身邊,終于再見了。在她短暫一生的最后時光,她留下了一個關(guān)于程序的夢想:
我以我自己的方式遲早會成為一名獨(dú)裁者。我現(xiàn)在可不會說,但我希望,它們將是紀(jì)律嚴(yán)明、異常和諧的軍隊(duì) —— 由大量的數(shù)構(gòu)成,伴著軍樂以勢不可擋的力量行進(jìn)。
至于巴貝奇的那臺分析機(jī),愛達(dá)離世后它便逐漸淡出視線,埋塵歷史。它在重新被人記起之前,先得被人遺忘。巴貝奇在其生命的最后幾年,可能感覺時日無多,再不可能等到這臺機(jī)器被造出來的那一天,他寫道:
如果有人在未被告誡以我的前車之鑒的情況下,試圖嘗試這項(xiàng)如此了無指望的工作,并通過完全不同的原理或更簡化的機(jī)械手段而成功實(shí)現(xiàn)了一臺可與整個數(shù)學(xué)分析部門相當(dāng)?shù)臋C(jī)器,那么我不怕把自己的名譽(yù)托付給他,因?yàn)樗隙〞耆斫馕耶?dāng)年努力的性質(zhì)及其成果的價值。
恩,這個人會出現(xiàn)的,但還需要再等一百年。
二十世紀(jì)
一個世紀(jì)后,1936 年,還在劍橋國王學(xué)院就讀的阿蘭·圖靈發(fā)表重要論文《論可計(jì)算數(shù)及其在判定問題上的應(yīng)用》,正式提出了“算法(algorithms)”和“計(jì)算機(jī)(computing machines)”這兩個核心概念,一直讓我們受用到今天。
1950 年,圖靈接著發(fā)表了論文《計(jì)算機(jī)器與智能》(Computing Machinery and Intelligence),為后來的人工智能科學(xué)提供了開創(chuàng)性的構(gòu)思。他提出了著名的「圖靈測試」:指出如果第三者無法分辨人類與人工智能機(jī)器反應(yīng)的差別,則可以論斷該機(jī)器具備人工智能。圖靈首次從行為主義的角度給出了人工智能的定義。
前兩年有部電影《模擬游戲》就是基于圖靈的傳記改編的,電影實(shí)際只刻畫了圖靈波瀾起伏的人生中短短的一小段。而且改編的也不一定完全符合史實(shí),但里面有一段情節(jié)倒是很讓人觸動:圖靈閃耀光芒的時期,正是在打第二次世界大戰(zhàn)的時代。二戰(zhàn)背景下如圖靈這樣的技術(shù)工作者,處在一個兩難境地 —— 破解不了德軍密碼,每時每刻都有人在戰(zhàn)場上死亡;最后破解了密碼,獲得了情報,卻只能看著卻不能告知友軍轉(zhuǎn)移。
圖靈也許就是巴貝奇一直寄希望出現(xiàn)的人,值得他托付名譽(yù)的人。用一種和他設(shè)想的完全類似的原理,但卻非機(jī)械化的手段,成功設(shè)計(jì)出了可以媲美十九世紀(jì)整個數(shù)學(xué)分析部門的計(jì)算機(jī)器。「圖靈機(jī)」是圖靈在頭腦思維中的構(gòu)想,但很快以此為基礎(chǔ)的計(jì)算機(jī)就被發(fā)明了出來。在還沒有計(jì)算機(jī)的時代,圖靈不但探索了計(jì)算機(jī)能做的事,還指出了計(jì)算機(jī)永遠(yuǎn)不能做到的事。他為計(jì)算機(jī)領(lǐng)域奠定了不可埋沒的基礎(chǔ),沒有他也許就沒有計(jì)算機(jī)的今天。
...
從巴貝奇的分析機(jī)到圖靈的計(jì)算機(jī)正好一百年,而從圖靈提出的人工智能距今已快 70 年,未來二三十年會怎樣呢?今天人們對人工智能的追捧,似乎就像巴貝奇年代對機(jī)械的崇尚,誰又來書寫二十一世紀(jì)的傳奇呢?
寫點(diǎn)文字,畫點(diǎn)畫兒,記錄成長瞬間。
微信公眾號「瞬息之間」,既然遇見,不如一起成長。
總結(jié)
以上是生活随笔為你收集整理的程序史记:从巴贝奇、爱达到图灵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 投CVPR过程中惊险的Rebuttal环
- 下一篇: 使用Nginx和Lua进行图片webp压