肯·湯普遜
生平
肯·湯普遜在美國(guó)的新奧爾良出生。有人曾問(wèn)他如何學(xué)會(huì)了編程,他表示自己只是因?yàn)閷?duì)邏輯著迷。
DECPDP-7,Unix系統(tǒng)最初在它上面運(yùn)行。
1960年,他就讀加州大學(xué)柏克萊分校,主修電氣工程,1966年獲取了電子工程碩士學(xué)位 。他的導(dǎo)師是美國(guó)數(shù)學(xué)家、計(jì)算機(jī)科學(xué)家埃爾溫·伯利坎普。1966年,肯·湯普遜加入貝爾實(shí)驗(yàn)室 。他參與了貝爾實(shí)驗(yàn)室與麻省理工學(xué)院以及通用電氣公司聯(lián)合開發(fā)的Multics系統(tǒng)項(xiàng)目。在開發(fā)Multics系統(tǒng)期間,湯普遜創(chuàng)造了Bon編程語(yǔ)言 。與此同時(shí),他又編寫了一個(gè)名為“Space Travel”的游戲。后來(lái)貝爾實(shí)驗(yàn)室撤出了Multics計(jì)劃。為了能夠繼續(xù)玩游戲,湯普遜只好找到一臺(tái)老式PDP-7機(jī)器,重寫了他的“Space Travel”游戲 。
在把游戲移植好之后,湯普遜又著手把自己的工具擴(kuò)充成完備的操作系統(tǒng)。他和丹尼斯·里奇帶領(lǐng)一些貝爾實(shí)驗(yàn)室的成員在PDP-7上面進(jìn)行開發(fā)工作,實(shí)現(xiàn)了文件系統(tǒng)、進(jìn)程、設(shè)備文件、命令行解釋器和一些小的工具程序等。1970年,在布萊恩·柯林漢的建議下,這個(gè)系統(tǒng)命名為“Unix”,與“Multics”名字相對(duì)應(yīng) 。在完成Unix系統(tǒng)開發(fā)的基本工作之后,湯普遜覺(jué)得Unix系統(tǒng)需要一個(gè)系統(tǒng)級(jí)的編程語(yǔ)言,于是創(chuàng)造了B語(yǔ)言。后來(lái)里奇在B語(yǔ)言的基礎(chǔ)上創(chuàng)造了C語(yǔ)言 。
在60年代,肯·湯普遜還參與了正則表達(dá)式的設(shè)計(jì),開發(fā)了 QED ( 英語(yǔ) : QED (text editor) ) 的兼容分時(shí)系統(tǒng)版本,并在其中引入正則表達(dá)式支持。QED和后來(lái)由湯普遜編寫的 ed編輯器 ( 英語(yǔ) : ed (text editor) ) 對(duì)正則表達(dá)式的流行做出了重要貢獻(xiàn)。之后正則表達(dá)式普遍用于Unix的文本處理程序中?,F(xiàn)在,幾乎所有使用正則表達(dá)式的程序都用到了某種來(lái)自湯普遜的記號(hào)的變體。湯普遜還發(fā)明了Thompson構(gòu)造法,該算法能夠?qū)⒄齽t表達(dá)式轉(zhuǎn)化為非確定有限狀態(tài)自動(dòng)機(jī)以提高匹配效率 。
肯·湯普遜(坐著)和丹尼斯·里奇在一臺(tái)PDP-11前面工作。
在 SIMH ( 英語(yǔ) : SIMH ) PDP-11模擬器上運(yùn)行Version 6 Unix,其中能夠看到“/usr/ken”這個(gè)文件。
進(jìn)入70年代,肯·湯普遜和丹尼斯·里奇繼續(xù)合作開發(fā)Unix操作系統(tǒng)。他們二人在Research Unix的開發(fā)方面非常有影響力,以至于道格拉斯·麥克羅伊后來(lái)寫道,“你可以安全地把丹尼斯·里奇和肯·湯普遜的名字放到幾乎所有沒(méi)寫其他人名的地方?!?湯普遜在2011年的一次采訪中說(shuō),Unix的第一個(gè)版本是他寫的,之后里奇開始提倡這款系統(tǒng),并且?guī)椭M(jìn)行開發(fā) :
“ 前兩三個(gè)版本的Unix系統(tǒng)都是我自己寫的,然后丹尼斯成為了布道者。接下來(lái)我們用一個(gè)稱為“C”的高級(jí)語(yǔ)言來(lái)重寫這個(gè)系統(tǒng)。他的大部分工作都在C語(yǔ)言和I/O系統(tǒng)上面,而其他部分的工作都是我做的。所有的工作都是在PDP-11機(jī)器上完成的。這臺(tái)機(jī)器是僥幸找到的,因?yàn)槟桥_(tái)機(jī)器本來(lái)是用于搞學(xué)術(shù)的。 ”
Unix系統(tǒng)的開發(fā)也幫助了C語(yǔ)言的發(fā)展??稀者d后來(lái)補(bǔ)充道,C語(yǔ)言“隨著Unix系統(tǒng)的一次重寫而發(fā)展,就這樣,它成為了系統(tǒng)程序設(shè)計(jì)的完美選擇?!?
在1975年,肯·湯普遜從貝爾實(shí)驗(yàn)室休假,并回到了他的母校加州大學(xué)伯克利分校。在那里,他幫助在PDP-11/70上面安裝了Version 6 Unix系統(tǒng)。后來(lái)加州大學(xué)伯克利分校維護(hù)了自己的Unix版本,即伯克利軟件套件(BSD)。
肯·湯普遜和貝爾實(shí)驗(yàn)室的 約瑟夫·康登 ( 英語(yǔ) : Joseph Henry Condon ) 共同制作了下棋機(jī)器 Belle ( 英語(yǔ) : Belle ) ,湯普遜負(fù)責(zé)軟件部分 。湯普遜還編寫了生成國(guó)際象棋殘局走法的程序,即 殘局?jǐn)?shù)據(jù)庫(kù) ( 英語(yǔ) : Endgame tablebase ) 。對(duì)于所有只剩4到6步的殘局,只要程序從數(shù)據(jù)庫(kù)中找到了棋譜那么就可以給出“完美”解法。后來(lái)他在國(guó)際象棋專家 約翰·羅伊克羅夫特 ( 英語(yǔ) : John Roycroft ) 的幫助下發(fā)布了程序生成結(jié)果。
貝爾實(shí)驗(yàn)室九號(hào)項(xiàng)目,正在運(yùn)行 acme ( 英語(yǔ) : acme (text editor) ) 編輯器和 rc ( 英語(yǔ) : rc ) 解釋器。
80年代之后,湯普遜和里奇繼續(xù)修補(bǔ)Research Unix,在第8到第10版中采用了BSD的代碼。在80年代中期,貝爾實(shí)驗(yàn)室開始計(jì)劃用一套新的操作系統(tǒng)來(lái)替換Unix,即貝爾實(shí)驗(yàn)室九號(hào)項(xiàng)目。這個(gè)系統(tǒng)是一個(gè)利用Unix原理的新系統(tǒng),計(jì)劃將更廣泛地用于所有主要設(shè)備中。湯普遜為計(jì)劃的設(shè)計(jì)和實(shí)施發(fā)揮了重要作用。來(lái)自Research Unix的較新版本的一些程序,例如mk和 rc ( 英語(yǔ) : rc ) 也加入到Plan 9系統(tǒng)中。
湯普遜試驗(yàn)了早期版本的C++語(yǔ)言,但是后來(lái)拒絕使用C++,因?yàn)樵诓煌姹局g經(jīng)常發(fā)生不兼容的情況。湯普遜在2009年的一次采訪中表達(dá)了對(duì)C++的負(fù)面評(píng)價(jià),并說(shuō)“C++做很多事情都是只達(dá)到一半的程度,而且它就是一個(gè)由各種互相沖突的想法組成的垃圾堆?!?
1992年,湯普遜和羅勃·派克設(shè)計(jì)并實(shí)現(xiàn)了UTF-8編碼方案,并將其用于Plan 9系統(tǒng)中 ?,F(xiàn)在,UTF-8編碼已經(jīng)成為互聯(lián)網(wǎng)的主要字符編碼,在所有網(wǎng)頁(yè)中,使用UTF-8編碼的網(wǎng)頁(yè)占了一半以上 。1996年,肯·湯普遜繼續(xù)和丹尼斯·里奇合作,開始從事Inferno操作系統(tǒng)的開發(fā) 。
2000年下半年,湯普遜離開貝爾實(shí)驗(yàn)室,進(jìn)入美國(guó)的Entrisphere公司工作。2006年辭職并加入Google公司。之后他與羅勃·派克和羅伯特·格瑞史莫(Robert Griesemer)二人共同設(shè)計(jì)了Go語(yǔ)言。在講述自己的開發(fā)過(guò)程時(shí),他說(shuō)他們?nèi)硕际菑牧汩_始的。出于對(duì)C++的厭惡,三個(gè)人共同討論了語(yǔ)言的每一項(xiàng)特性,所以Go語(yǔ)言最終沒(méi)有任何“無(wú)用的垃圾” 。
在2009年的一次采訪中,湯普遜表示自己正在使用基于Linux的操作系統(tǒng)。
榮譽(yù)和獲獎(jiǎng)情況
1980年,湯普遜當(dāng)選美國(guó)國(guó)家工程院院士,因?yàn)椤霸O(shè)計(jì)了Unix操作系統(tǒng),它的效率、廣度、力量和風(fēng)格指導(dǎo)了一代在小型計(jì)算機(jī)進(jìn)行開發(fā)的人?!?
1983年,因“發(fā)展了通用操作系統(tǒng)的理論,特別是實(shí)現(xiàn)了Unix操作系統(tǒng)”,湯普遜和里奇共同獲得了圖靈獎(jiǎng)。他的演講以《Reflections on Trusting Trust》(反思對(duì)信任的信任)為題 。文中提到的向編譯器植入的后門后來(lái)被人們稱為“Thompson hack”,對(duì)計(jì)算機(jī)安全領(lǐng)域產(chǎn)生了重要影響 。因?yàn)樵赨nix系統(tǒng)和C語(yǔ)言方面做出的貢獻(xiàn),他們二人在1990年共同獲得了 IEEE漢明獎(jiǎng) ( 英語(yǔ) : IEEE Richard W. Hamming Medal ) ,在1997年獲得了計(jì)算機(jī)歷史博物館研究員獎(jiǎng) ,又在1999年4月27日獲得了由美國(guó)總統(tǒng)比爾·克林頓頒發(fā)的 美國(guó)國(guó)家技術(shù)與創(chuàng)新獎(jiǎng)?wù)?( 英語(yǔ) : National Medal of Technology and Innovation ) 。
1999年,電氣電子工程師學(xué)會(huì)向湯普遜頒發(fā)了第一個(gè) 金井務(wù)獎(jiǎng) ( 英語(yǔ) : Tsutomu Kanai Award ) 。2011年,湯普遜和里奇二人又共同獲得了日本國(guó)際獎(jiǎng) 。
參見
Unix哲學(xué)
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
- 有價(jià)值
- 一般般
- 沒(méi)價(jià)值
{{item.userName}} 舉報(bào)
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評(píng)論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報(bào)
{{_reply.time}}