當前位置:編程學習大全網 - 編程語言 - 唐納德·克努特的奇聞異事

唐納德·克努特的奇聞異事

高德納曾在自傳的開頭幽默地發問:“Donald Knuth真的只是壹個人麽?”作為現代計算機科學的鼻祖,他完成了編譯程序、屬性文法和運算法則等領域的前沿研究,出版專著17部,發表論文150余篇(涉及巴比倫算法、聖經、字母“s”的歷史等諸多內容),寫出兩個數字排版系統,同時在純計算數學領域也有獨特貢獻。他獲得的獎項難以勝數,其中包括ACM Turing Award頒發的圖靈獎(1974),美國國家科學獎(1979),日本KYOTO獎(1996),瑞典科學院的Adelskold獎及馮諾伊曼獎。而他對榮譽從不經意,據說那只代表至高榮譽的圖靈碗被用來盛放水果。——回首過往,幾十年時光如白駒過隙,大約是他自己對做出的成果如此之多也感到吃驚,所以才有以上壹問。

八歲時的高德納即顯出超凡智力:當時某糖果商以小學生為參與對象舉辦了壹項益智趣味比賽,要求用“Ziegler’s Giant Bar”(分別為糖果廠名和出產的棒棒糖名)裏的字母寫出盡可能多的單詞。高假裝胃疼宅家兩周,依靠壹部大字典列出了4500個單詞(超出裁判掌握的2000個單詞壹倍多),不僅使所在班級奪冠(獎品為壹臺電視機和每人壹塊Giant Bar),本人也贏得壹付雪撬。其賽後感言曰:我還能寫出更多。

在數學上,高德納也很早就表現出天才。高中壹年級時,他發明了壹種方法,利用這種方法,對任意畫出的2條相交直線,他能立即給出相應的方程。

在高中第壹學年,高德納並未對數學發生太大興趣,他更喜歡聽音樂與作曲,壹度考慮過報考音樂專業。這個愛好深度影響到他後來的生活及研究——他將寫作喻為演奏管風琴,其書房裏的確也擺放有壹臺特制的84管管風琴,此外他還會薩克斯和大號等樂器。所著《娛樂和遊戲論文集》壹書有四個章節內容涉及到高的“主要副業”——音樂;進入90年代,當連續工作幾天需要放松壹下時,他會著手譜寫管風琴樂曲。

1956年以科均97.5的分數高中畢業進入凱斯理工學院物理專業後,高德納中學時創作的科幻小說《普茨比度量衡體系》發表於著名的《瘋狂》(Mad)雜誌,掙得平生第壹筆稿費25美元及西屋“科學天才”提名獎。這個作品曾多次再版,直到作者即將退休的1991年還重印過壹次。

大學壹年級留校打工,毗鄰的計算機房新到了壹臺IBM650——這個指示燈閃爍不定的龐然大物讓高德納生出莫大興趣。當獲準在晚上操作那臺計算機後,他幾天不眠不休地觀察探究,並且改動了說明手冊上的程序使之更加好用。壹年後,高改入數學系,自此終生同計算機結緣。當時兼職學校籃球隊的他用IBM650寫了壹個程序,用於對球員在每場比賽中得分、助攻、搶斷、籃板球、蓋帽等壹攬子數據的分析評估,球隊教練據此挑選球員,使凱斯理工學院贏得了1960年的聯賽冠軍。這個“神奇的公式和程序”引來了當地媒體乃至CBS電視臺的大肆報道,高所在球隊和IBM650的合影被IBM印到了產品宣傳冊上。這段經歷的重要性不言而明,以至高德納在巨著《計算機程序設計的藝術》第壹卷卷首寫下“獻給曾經安裝在開思理工學院的650型計算機,以紀念那些愉快的夜晚”的題辭。

上大二那年,某教授在課堂上給出壹個刁鉆的題目,宣稱誰能破解就可記成績“A”。高跟大多數同學都以為那是道無解的題,直到某日他未趕上公***汽車,只能步行去看壹個演出時,方決定利用路上的閑暇碰下運氣。不曾想問題很快便獲得解決,成功地得到了“A”。在接下來的那個學年裏,他的離散數學成績又壹次被老師評為“A”。

高德納1960年畢業於開思理工學院,因學業特別出色,被破例同時授予學士和碩士學位。之後在伯克利攻讀數學博士期間,ALGOL60經常因為編譯器不成熟出現故障,他為此編寫了壹個簡單的測試程序,人稱“Man or boy test”(男人或男孩測試),可以譯成“是男人就得-67”。高解釋,用ALGOL60來編譯這段程序,只要運行結果等於-67,就說明這個編譯器沒有問題了,是純爺們兒。

習慣用鉛筆而非鍵盤寫初稿,高將原因歸咎於打字速度遠高於思考速度(每分鐘 80 個單詞以上),而這會導致思考出現太多停頓,用鉛筆可以讓思考與輸入速度保持壹致——“我打字的速度比我思考的速度更快,這樣當我試圖用鍵盤創作重要內容時,就會產生同步問題。速度通常不會是最重要的標準。科學壹般都難以迅速解釋或迅速領會……我通常的工作方式是用鉛筆和紙先把所有東西都寫下來,然後在旁邊放壹個大廢紙簍。然後使用Emacs將所有文本鍵入到機器中……特定的Emacs快捷鍵使得寫書的過程有點兒像演奏風琴……”

“我戴著壹頂計算機科學家的帽子,而不是壹頂數學家的帽子。”這似乎暗示了身為加州理工學院數學博士的高對數學家的某種成見——在他看來後者只知道“What is it(這是什麽)”,而前者還知道“How to do it(如何做到這壹點)”這可能是他心目中的數學與計算機科學的區別。

斯坦福大學曾讓高德納為自己選擇壹個頭銜,他確定的是“計算機程序設計藝術名譽教授”。高認為“計算機科學”不是科學(他很訝異人們為何如此喜歡科學),而是壹門藝術。它們的區別在於:藝術是人創造的,而科學不是;藝術是可以無止境提高的,而科學不能;藝術創造需要天賦,而科學不需要。

傳聞高改作業通常是隨機翻到壹頁認真批閱,有了壹個初步印象後,對剩下的內容就只大概看看了。閱讀大致也照此辦理:遇上大部頭先讀第316頁,如果書比較薄就看第100頁;隨後就可以作出判斷了,據說準確率還八九不離十。如果追隨他的人很多,以後著書就要註意了:寫到第316頁或100頁時壹定要停下來多推敲下。這或許是高德納推崇隨機算法的結果。

“文學編程(Literate Programming)”是高寫的又壹程序,他自稱寫這個程序的動機有二:A.讓壹個程序員(或許就是他自己)在某壹日拿到普利策獎;B.讓那些提出“結構化程序”的家夥在寫“非文學程序”時,就像他當年寫“非結構化程序”時壹樣懷有罪惡感——娃哈哈。有關“文學編程”設想的文字最先發表於英國的《計算機學報》,有人問為何不在美國發表,高答曰:美國人沒文化,他們理解不了啊。

《美國數學月刊》刊載過高德納壹篇名為“衛生紙問題” 的論文,研究如何合理使用廁紙的算法,小節標題中使用了大量的“糞便學”詞匯。編輯警告他,過度調侃的文風在我們這裏是危險的,請三思!高替換了小標題裏的某些詞,但不想動文章標題,遂在給編輯的回信裏寫道:我用這個題目做過兩次演講,主題早已被廣泛采用和討論……雲雲。編輯無奈之下只好表示:“妳的廁紙被接受了!”(斯坦福大學計算機科學系樓內的廁紙架可並放兩筒廁紙,供如廁者取用。卷筒大小不等時,喜歡從大筒拿紙的叫big-chooser大的選擇器,喜歡從小筒拿紙的則稱little-chooser小的選擇器;若兩筒大小接近,壹般人的選擇可能是離手最近的。廁紙平時由janitor看門人負責更換,用完壹筒換掉壹筒;不過要是同時用完,恐怕就會有人遇上麻煩了……高研究的似是兩筒紙同時用完的窘境出現的概率)

在伯克利畢業的前壹年,著名的艾迪生-韋斯利出版社約初露頭角的高德納寫壹本編譯器和程序設計方面的書,這件原本尋常的事最終成就了計算機科學史上的壹個奇觀。出版社1962年約稿,可直到1966年還動靜全無,編輯忍不住去電催促,說都過去4年了,書寫到啥程度了啊?高答才3000來頁。編輯驚呼那幹嘛還不交稿?答曰還沒進入正題呢。編輯崩潰地說,那只能出多卷本了……

高做過大受歡迎的“信仰與科學的關系”系列講座,對訪者問及的寫作和信仰之間的關系,他回答說:“計算機科學是既壯觀又優美的,我嘗試盡自己所能,以最恰當的方式來解釋我所了解的某些片斷……我相信,總有壹些神秘的東西是超越人類的理解而存在的……我認為,上帝希望我能創造某些成果,而這些東西能夠啟發其他人去創造別的成果。”

高德納這個中文名來自姚儲楓教授(香港城大計算機科學系主任,華裔圖靈獎得主姚期智的夫人)。以“高”為姓,據Knuth自述是因其個頭高大,且輔音G和K讀音接近;“德納”則與“Donald”相諧,且在中文裏含體面高貴之義。其時(1977年)高德納攜夫人及兒女John和與Jen正準備訪問中國大陸——姚儲楓給孩子也分別起了“高小強”、“高小珍”的名字,他們全家還同中國孩子在公園玩過無須語言交流的遊戲。

有人視高為文藝復興時期式的天才人物,因其不僅博學,更難得的是具超壹流的動手能力——在分工日益細化,專業領域愈來愈狹窄的現代社會,這種博而專,基礎與應用兼能,理論和操作並行的人才類型尤為罕見。如同壹個人獨力設計制造壹架飛機,除了需要精通空氣動力學理論,還須考慮機身上每壹顆螺絲釘的固定方式,這確實不免讓人想到歐洲文藝復興時期列奧納多·達·芬奇那樣的全能巨人。

《計算機程序設計藝術》第壹卷於1968年推出,可真正能讀完讀懂的人為數並不多(傳比爾·蓋茨費時幾個月才讀完這壹卷,然後說,如果妳想成為壹個優秀的程序員,那就去讀這個《基本算法》吧)。高對此解釋道:“我知道我的書是不容易讀,不過要知道的是,如果不是我精雕細琢地寫的話,它們會比現在難讀壹百倍。”1973年,這部剛出到第三卷的書(計劃寫七卷)已被計算機界視為“神作”,最初幾年就賣出100多萬套;譯為俄、日、西、葡、匈牙利、羅馬尼亞等多種文字後,更創造了計算機類圖書的銷售紀錄。美國計算機協會(ACM)也不淡定了,1974年就將國際計算機界的至高榮譽“圖靈獎”授予了他——此時的高德納年方36歲,他迄今還是這項最年輕圖靈獎獲得者紀錄的保持者。

  • 上一篇:C語言的32個關鍵詞
  • 下一篇:學習計算機專業的以後能幹什麽呢?
  • copyright 2024編程學習大全網