我發表的第一篇學術論文是基於IBM的大型資料庫及硬體RISC架構的排列演算法。1968年IBM 發展出第一個層次型數據庫(Hierarchical Database)管理系統,稱為MS V1運作於IBM 360電腦。直到今日,仍有很多企業在使用該數據庫。這麼多年來,S/360系統一直都是IBM在金融市場的主力,也是藍色巨人的金雞母。有趣的是,指令精簡的RISC架構,也是IBM的首創。IBM的寇克(John Cocke,1925~2002年;圖一)主導基於RISC架構的建置,於1975年推出IBM 801電腦。
IBM在擴大其業務的過程,資助全世界各大學的研究,保持良好互動。我1985年進入華盛頓大學研究所第一份研究助理的工作就是在執行IBM的計畫,研究如何快速排列大量的資料。成果發表於IEEE Transactions on Software Engineering,是我發表的第一篇學術論文。
在那個年代,大部分研究生的第一篇論文都發表於會議(Conference),而我的第一次卻登載於世界第一流的學術期刊。當指導教授Baer告訴我論文被接受時,我完全無法相信。這篇文章的撰稿經歷了70餘次修改,在研究過程,由於我資質不佳,更是挫折不斷。有一次和Baer教授討論時,我脫口而出:「I’m very frustrated.」Baer拿下眼鏡,很疲倦的揉眼睛,回答:「Me too.」我問他,我是否應該放棄研究算了。他很簡短有力的回答:「You will make it.」於是Baer連哄帶安慰的引領我熬過瓶頸。
這篇論文發表後,我建立了信心,相信平庸如我者,只要努力,也可以獨立做研究。除了感謝Baer教授的指導外,我也很感激IBM的資助。我的論文是以Codeword的方式表示記錄(Record),再將大量記錄以改良過的Quicksort加以排序。我發明的方法曾引起不少人注意,並為以色列的IBM公司採用。
Quicksort為霍爾(Charles Antony Richard Hoare,b. 1934年;圖二)所發明,其過程也相當有趣。1960年8月,霍爾負責把Shell先生當時新發明的一種很快的排序方法Shell Sort寫成程式。他的老板對霍爾寫的程式很滿意。不過霍爾覺得他發明了一種更快,且不花額外儲存空間的排序法。他的老板不相信,於是他們打賭6便士。雖然這個方法很難解釋,但最後他的老板認輸,承認霍爾的方法比較快。當時霍爾並不知道這個排序法該怎麼寫成程式。後來他在一個研討會學到「遞迴」(Recursive)概念,當場想通將他發明的排序法寫出來,取名為Quicksort。我的第一篇論文巧妙運用Quicksort,到今天還有人寫信來問我這篇30年前發表的論文細節,令我受寵若驚呢。
現為國立陽明交通大學資工系終身講座教授暨華邦電子講座,曾任科技部次長,為ACM Fellow、IEEE Fellow、AAAS Fellow及IET Fellow。研究興趣為物聯網、行動計算及系統模擬,發展出一套物聯網系統IoTtalk,廣泛應用於智慧農業、智慧教育、智慧校園等領域/場域。興趣多元,喜好藝術、繪畫、寫作,遨遊於科技與人文間自得其樂,著有<閃文集>、<大橋驟雨>。