威廉·卡亨 - 簡(jiǎn)介
威廉·凱亨,也譯為威廉·卡亨(William Morton Kahan)1933年6月5日出生,凱亨生于多倫多。完成中學(xué)學(xué)業(yè)以后,凱亨進(jìn)入著名的多倫多大學(xué)。在那里,他實(shí)現(xiàn)了“三級(jí)跳”——繼1954年取得數(shù)學(xué)學(xué)士學(xué)位以后,1956年和1958年又先后獲得碩士學(xué)位和博士學(xué)位。
威廉·卡亨 - 經(jīng)歷
卡亨1933年6月5日生于多倫多。完成中學(xué)學(xué)業(yè)以后,卡亨進(jìn)入著名的多倫多大學(xué)。在那里,他實(shí)現(xiàn)了“三級(jí)跳”——繼1954年獲得數(shù)學(xué)學(xué)士學(xué)位以后,1956年和1958年又先后獲得碩士學(xué)位和博士學(xué)位。學(xué)成以后,卡亨既在大學(xué)從事過教學(xué)和科研,又在一些著名的計(jì)算機(jī)整機(jī)廠和元器件廠從事過重要的技術(shù)工作和產(chǎn)品開發(fā)工作。其中包括:1960—1968年在多倫多大學(xué)任教,1972—1973年在IBM公司工作,1974--1982年任HP公司顧問,1976—1983年在Intel公司工作,1983—1986年重返IBM,1986年以后在加州大學(xué)伯克利分校任教,同時(shí)在美國(guó)國(guó)家半導(dǎo)體公司兼職。這些經(jīng)歷使他積累了豐富的工程實(shí)踐經(jīng)驗(yàn),并為計(jì)算機(jī)科學(xué)技術(shù),尤其是在計(jì)算機(jī)運(yùn)算技術(shù)的發(fā)展方面作出了重要貢獻(xiàn)。
凱亨既在母校和加州大學(xué)伯克利分校從事過教學(xué)和研究,又在Intel、NS、IBM、HP、Apple等著名的計(jì)算機(jī)元器件公司和整機(jī)制造廠家工作過。這些經(jīng)歷使他積累了豐富的工程實(shí)踐經(jīng)驗(yàn),并為計(jì)算機(jī)科學(xué)技術(shù),尤其是在計(jì)算機(jī)運(yùn)算技術(shù)的發(fā)展方面做出了重要貢獻(xiàn)。
在英特爾供職期間,凱亨主持設(shè)計(jì)與開發(fā)了8087芯片,成功地實(shí)現(xiàn)了高速、高效的浮點(diǎn)運(yùn)算部件。直到目前,以80×86為CPU的計(jì)算機(jī),若需完成科學(xué)與工程計(jì)算方面的課題,也必須同時(shí)配置8087這種數(shù)學(xué)協(xié)處理器。同時(shí),一些著名的數(shù)學(xué)軟件包,如Mathematica,也必須在配有8087數(shù)學(xué)協(xié)處理器的機(jī)器上才能運(yùn)行。由于他的突出貢獻(xiàn),凱亨后來又受命主持制定了二進(jìn)制的、與基數(shù)無關(guān)的浮點(diǎn)運(yùn)算標(biāo)準(zhǔn),即IEEE754標(biāo)準(zhǔn)和IEEE854標(biāo)準(zhǔn)。而這兩個(gè)標(biāo)準(zhǔn)至今仍為絕大多數(shù)的計(jì)算機(jī)廠商所遵守。也正是由于這兩個(gè)標(biāo)準(zhǔn),ACM于1990年1月宣布凱亨因在浮點(diǎn)運(yùn)算標(biāo)準(zhǔn)的制定上的貢獻(xiàn)而獲得圖靈獎(jiǎng)。
嚴(yán)密、嚴(yán)謹(jǐn)、嚴(yán)格、追求更進(jìn)一步是威廉·凱亨的一貫作風(fēng),也是他留給英特爾在不斷研發(fā)新的計(jì)算機(jī)浮點(diǎn)運(yùn)算技術(shù)道路上的一筆精神財(cái)富。
1989年的圖靈獎(jiǎng)又一次選擇了一位加拿大計(jì)算機(jī)科學(xué)家,這一次是威廉·卡亨(William M.Kahan),他是因?yàn)樵诟↑c(diǎn)運(yùn)算部件的設(shè)計(jì)和浮點(diǎn)運(yùn)算標(biāo)準(zhǔn)的制定上的突出貢獻(xiàn)而獲此殊榮的。
威廉·卡亨 - 浮點(diǎn)計(jì)算
大家知道,計(jì)算機(jī)中的“數(shù)”有“定點(diǎn)數(shù)”和“浮點(diǎn)數(shù)”之分,“定點(diǎn)數(shù)”的運(yùn)算部件的設(shè)計(jì)與實(shí)現(xiàn)比較容易,而“浮點(diǎn)數(shù)”的運(yùn)算部件的設(shè)計(jì)和實(shí)現(xiàn)卻復(fù)雜得多,困難得多。因此,較早的計(jì)算機(jī)許多都不配備浮點(diǎn)運(yùn)算部件。那么,需要浮點(diǎn)運(yùn)算的時(shí)候怎么辦呢?歷史上曾經(jīng)有過兩種解決辦法。第一是利用浮點(diǎn)運(yùn)算子程序在定點(diǎn)運(yùn)算部件上實(shí)現(xiàn)浮點(diǎn)運(yùn)算。最早的浮點(diǎn)運(yùn)算子程序是由1970年圖靈獎(jiǎng)獲得者威爾金森(J.H.Wilkinson)在圖靈所設(shè)計(jì)的ACE計(jì)算機(jī)上實(shí)現(xiàn)的。第二種辦法是馮·諾伊曼提出來的,即對(duì)定點(diǎn)數(shù)附加以“比例因子”,使之成為實(shí)際上的浮點(diǎn)數(shù)。這個(gè)辦法固然巧妙,但比例因子的設(shè)定成了令程序員傷腦筋的事,因?yàn)橛袝r(shí)候運(yùn)算的中間結(jié)果和最后結(jié)果的范圍很難確切估計(jì),比例因子選小了,造成運(yùn)算溢出;比例因子選大了,影響運(yùn)算精度。后來,巴克斯(J.Backus,1977年圖靈獎(jiǎng)獲得者)和他的同事海里克(H.Herrick)一起開發(fā)出了一個(gè)叫Speedcoding的軟件,能根據(jù)問題自動(dòng)設(shè)定和調(diào)整比例因子,成功地解決了這個(gè)問題。這兩種辦法都是通過軟件實(shí)現(xiàn)浮點(diǎn)運(yùn)算的,雖然可行,畢竟是“權(quán)宜之計(jì)”,因?yàn)榍罢呤垢↑c(diǎn)運(yùn)算的速度大大降低,后者在數(shù)的取值范圍和精度兩方面都有很大限制,難以滿足某些應(yīng)用的需要。正是卡亨,在Intel工作期間,主持設(shè)計(jì)與開發(fā)了8087芯片,成功地實(shí)現(xiàn)了高速、高效的浮點(diǎn)運(yùn)算部件。目前,以80x86為CPU的計(jì)算機(jī),若需完成科學(xué)與工程計(jì)算方面的課題,有些需配置8087這種數(shù)學(xué)協(xié)處理器(mathematical coprocessor)。一些著名的數(shù)學(xué)軟件包,如Mathematica,也必須在配有8087數(shù)學(xué)協(xié)處理器的機(jī)器上才能運(yùn)行。除此以外,卡亨還為HP計(jì)算機(jī)的體系結(jié)構(gòu)設(shè)計(jì)作出過貢獻(xiàn)。由于有這樣的背景,IEEE在制定浮點(diǎn)運(yùn)算標(biāo)準(zhǔn)的時(shí)候,很自然地任命卡亨為這個(gè)課題的負(fù)責(zé)人。在卡亨的主持下,二進(jìn)制浮點(diǎn)運(yùn)算標(biāo)準(zhǔn)IEEE 754以及與基數(shù)無關(guān)的(radix-independent)浮點(diǎn)運(yùn)算標(biāo)準(zhǔn)IEEE 854相繼出臺(tái)。這兩個(gè)標(biāo)準(zhǔn)至今仍為絕大多數(shù)的計(jì)算機(jī)廠商所遵守。
除了以上主要貢獻(xiàn)外,卡亨在科學(xué)、工程、財(cái)會(huì)計(jì)算的數(shù)值算法的設(shè)計(jì)、誤差分析、驗(yàn)證與自動(dòng)診斷等方面也有卓越的貢獻(xiàn),是該領(lǐng)域中世界公認(rèn)的權(quán)威之一,曾發(fā)表過許多有影響的論文。尤其是在矩陣計(jì)算方面,卡亨有極高的學(xué)術(shù)造詣。
作為一名數(shù)學(xué)家,卡亨在教學(xué)與研究工作中素以作風(fēng)嚴(yán)密、嚴(yán)謹(jǐn)、嚴(yán)格著稱。但為此,他也付出了一定的代價(jià)?ê喃@得圖靈獎(jiǎng)以后的一個(gè)小插曲很能說明這個(gè)問題。事情是這樣的:ACM于1990年1月宣布卡亨因在浮點(diǎn)運(yùn)算標(biāo)準(zhǔn)的制定上的貢獻(xiàn)而獲得1989年度的圖靈獎(jiǎng),并在1990年2月于華盛頓召開的,90CSC(計(jì)算機(jī)科學(xué)會(huì)議)期間正式向卡亨頒獎(jiǎng)。這之后,ACM收到了一名讀者對(duì)卡亨獲獎(jiǎng)表示異議的信。這名讀者曾是斯坦福大學(xué)的學(xué)生,后來考進(jìn)加州大學(xué)伯克利分校念研究生,入學(xué)考試時(shí)與卡亨教授發(fā)生過齟齬,后來在舊金山的一家軟件公司工作。按照“言論自由”的原則,ACM把這封信不加評(píng)論地發(fā)表在《ACM通訊》7月份的“ACM論壇”(ACM Forum)這一專欄中。
這名讀者提出異議的理由主要有兩條:一是憑“制定標(biāo)準(zhǔn)”就獲獎(jiǎng),條件不足,而且他認(rèn)為IEEE浮點(diǎn)標(biāo)準(zhǔn)是科學(xué)與技術(shù)上的一個(gè)錯(cuò)誤,因?yàn)樗恋K了數(shù)學(xué)算法的發(fā)展,無助于非專家的一般用戶避免出錯(cuò)。至于這個(gè)標(biāo)準(zhǔn)至今沒有遭到更廣泛的批評(píng),只是因?yàn)樗cAda、VHDL標(biāo)準(zhǔn)相比,潛在的不良后果較小而已。對(duì)上面這條理由,該讀者大概也覺得并不理直氣壯,因而并未發(fā)揮,匆匆?guī)н^。重點(diǎn)在第二條,即卡亨在伯克利大學(xué)當(dāng)教授對(duì)學(xué)生不公正。不公正表現(xiàn)在哪里呢?該讀者說,伯克利大學(xué)的大學(xué)生絕大多數(shù)課程都能取得高分,只有卡亨教授上的數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)課例外,這是其一。其二是該讀者自己和其他4—5名學(xué)生在進(jìn)入伯克利研究生院的初試中,6門筆試課中的5門都順利通過,只有卡亨教授主持的數(shù)值分析課的考試通不過,不得不重考。而他之所以未能通過,是因?yàn)樗忸}時(shí)注重步數(shù)少,認(rèn)為這比運(yùn)算結(jié)果的精度更加重要,而且他強(qiáng)調(diào)說他在斯坦福大學(xué)學(xué)習(xí)時(shí),那里的物理專家和微分方程專家也都是這么看的,這么教課的?ê嘟淌诓煌馑倪@種觀點(diǎn),給他打了個(gè)“不及格”,讓他重考。這封讀者來信發(fā)表以后,10月份出版的《ACM通訊》上,在“ACM論壇”中發(fā)表了另一名讀者表示不同意見的來信,這次是加拿大麥克馬斯托大學(xué)(McMaster University)計(jì)算機(jī)科學(xué)系的一位老師發(fā)表看法。他認(rèn)為,上述讀者介紹的情況,恰恰說明卡亨教授對(duì)學(xué)生高標(biāo)準(zhǔn),嚴(yán)要求,是值得稱道的;而解題步數(shù)同運(yùn)算結(jié)果的精度相比何者更重要,正確的一方顯然是卡亨教授。因此這名讀者表示,在看了上述讀者的信之后,他只是更加增加了對(duì)卡亨教授的敬意,而不是相反。爭(zhēng)論至此結(jié)束。值得我們注意的是,在這個(gè)過程中,圖靈獎(jiǎng)的評(píng)獎(jiǎng)委員會(huì)和卡亨教授本人都沒有出來就此說任何話。這一小插曲也許對(duì)我國(guó)的教育界和科技界有所啟示。
卡亨目前仍在伯克利計(jì)算機(jī)科學(xué)系任教授。