心目中的编程高手 (8a) -- Edsger Wybe Dijkstra

对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,无非是戴爷爷在1956年为了展示新计算机ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专业期刊都没有。戴爷爷于是推迟发表这个算法。直到1959年,他才把这个算法发表在Numerische Mathematik的创刊号上,权为捧场。:-) EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。

戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情愿,但经不住项目负责人BramCarel的轮番吹捧:我们知道实时中断让您工作变得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博士论文,顺利戴上博士帽。

让戴爷爷真正成名立万的还是在X1上开发的Algo60,最早的高级语言之一。戴爷爷没日没夜地工作了8个月,就搞出了Algo60,也因此获得了1972年的图灵奖。因为Algo60,戴爷爷发表了一篇石破天惊的文章:Recursive Programming于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。而且Algo60还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。

说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系统,并培养计算机科学家。几年后,THE Multiprogramming System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小组(1972年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。

EWD太牛,结果他的故事也太多。先到这里吧。1973起,他的故事就在美国发生了。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

展开阅读全文

悼念伟大的计算机科学家Edsger Wybe Dijkstra myan[转载]

08-22

[转载自网易广州社区语言版]rn标题 悼念伟大的计算机科学家Edsger Wybe Dijkstra myan rn rn关键字 Dijkstra rn rnrn悼念伟大的计算机科学家Edsger Wybe Dijkstra rnrn2002年8月8日,我象往常一样查看自己在extremeprogramming电子小组上订阅的newsletter。突然看到这个小组上的稀客、OO教父Grady Booch的发言,题目是Dijkstra。我以为大家在讨论Dijkstra教授提出的什么难题,定睛一看,才知道是一篇类似生平介绍式的讣告——在与癌症进行了多年的斗争之后,伟大的荷兰计算机科学家Edsger Wybe Dijkstra已经于2002年8月6日在荷兰Nuenen自己的家中与世长辞!终年72岁。 rnrn原来如此! rnrn这个Dijkstra,就是那个提出“goto有害论”的Dijkstra,就是那个提出信号量和PV原语,解决了有趣的“哲学家聚餐”问题的Dijkstra,那个Dijkstra最短路径算法的创造者,第一个Algol 60编译器的设计者和实现者,THE操作系统的设计者和开发者,那个与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。 rnrn阿兰图灵的自杀是在办个世纪之前,冯诺依曼去世也已经多年,作为这个相对新兴的行当中的从业者,我们似乎已经很习惯于从相信,从书上读到的每个名字都是仍然在世的活生生的人,都是我们这个时代的骄傲。无论是仍然健硕的D. E. Knuth,Fred Brooks,Dennis Ritchie, Ken Thompson, Brian Kernighan, 还是正当盛年的Bjarne Stroustrup,Grady Booch,Steve McConnell, Andy Koenig, Robert Martin, Kent Becker, Martin Fowler, James Gosling, 再或者是青春年少,意气风发的Linus Trovalds,Andrei Alexandrescu,我们似乎都习惯于认为,只要一封email,这些书本上的名字就会立刻成为你的朋友。Internet把地球变成了一个大村庄,每个人的距离都那么的近。 rnrn但是可惜,Internet却无法缩短跨越生与死的冥界。今天,一颗真正的巨星在我们的眼前陨落!作为一名普通的程序员,我从内心感到惋惜和悲痛。这种悲痛,两年半前在我最初得知Richard Stevens的逝世时,也曾感受过,然而却不如今天来得这么强烈。毕竟,当我对编程还是懵懵懂懂的时候,就知道有个叫Dijkstra的人劝告大家不要滥用goto,而在那之前,goto在我看来就是编程的全部奥秘所在。之后我在学习算法、数据结构、操作系统等课程的时候,Dijkstra这个名字一次又一次从书里跳出来,我对于这个名字的崇敬也越来越深。我知道他晚年疯狂的迷恋C++,这也几乎是我这个C++ Fan所能感受到的最大荣幸。我曾想过,有朝一日,我会给他写一封email,什么也不说,只想表达我个人对他的感谢和敬意。没想到,如今连这个机会也没有了! rnrnDijkstra引导了并且将继续引导这个星球上所有的程序员,他的贡献和影响将与世长存,让我们祝他安息! rnrn【附】Grady Booch对Dijkstra的介绍 rnrn> Professor Edsger Wybe Dijkstra, a noted pioneer of the science and rn> industry of computing, died after a long struggle with cancer on 6 rn> August 2002 at his home in Nuenen, the Netherlands. rn> rn> Dijkstra was born in 1930 in Rotterdam, The Netherlands, the son of a rn> chemist father and a mathematician mother. He graduated from the rn> Gymnasium Erasmianum in Rotterdam and obtained degrees in mathematics rn> and theoretical physics from the University of Leyden and a Ph.D. in rn> computing science from the University of Amsterdam. He worked as a rn> programmer at the Mathematisch Centrum, Amsterdam, 1952-62; was rn> professor of mathematics, Eindhoven University of Technology, rn> 1962-1984; and was a Burroughs Corporation research fellow, 1973-1984. rn> He held the Schlumberger Centennial Chair in Computing Sciences at the rn> University of Texas at Austin, 1984-1999, and retired as Professor rn> Emeritus in 1999. rn> rn> Dijkstra is survived by his wife of over forty years, Maria (Ria) C. rn> Dijkstra Debets, by three children, Marcus J., Femke E., and computer rn> scientist Rutger M. Dijkstra, and by two grandchildren. rn> rn> Dijkstra was the 1972 recipient of the ACM Turing Award, often viewed rn> as the Nobel Prize for computing. He was a member of the Netherlands rn> Royal Academy of Arts and Sciences, a member of the American Academy rn> of Arts and Sciences, and a Distinguished Fellow of the British rn> Computer Society. He received the 1974 AFIPS Harry Goode Award, the rn> 1982 IEEE Computer Pioneer Award, and the 1989 ACM SIGCSE Award for rn> Outstanding Contributions to Computer Science Education. Athens rn> University of Economics awarded him an honorary doctorate in 2001. In rn> 2002, the C&C Foundation of Japan recognized Dijkstra "for his rn> pioneering contributions to the establishment of the scientific basis rn> for computer software through creative research in basic software rn> theory, algorithm theory, structured programming, and semaphores". rn> rn> Dijkstra is renowned for the insight that mathematical logic is and rn> must be the basis for sensible computer program construction and for rn> his contributions to mathematical methodology. He is responsible for rn> the idea of building operating systems as explicitly synchronized rn> sequential processes, for the formal development of computer programs, rn> and for the intellectual foundations for the disciplined control of rn> nondeterminacy. He is well known for his amazingly efficient shortest rn> path algorithm and for having designed and coded the first Algol 60 rn> compiler. He was famously the leader in the abolition of the GOTO rn> statement from programming. rn> rn> Dijkstra was a prodigious writer. His entire collection of over rn> thirteen hundred written works was digitally scanned and is accessible rn> at http://www.cs.utexas.edu/users/EWD. He also corresponded regularly rn> with hundreds of friends and colleagues over the years --not by email rn> but by conventional post. He strenuously preferred the fountain pen to rn> the computer in producing his scholarly output and letters. rn> rn> Dijkstra was notorious for his wit, eloquence, and way with words, rn> such as in his remark "The question of whether computers can think is rn> like the question of whether submarines can swim"; his advice to a rn> promising researcher, who asked how to select a topic for research: rn> "Do only what only you can do"; and his remark in his Turing Award rn> lecture "In their capacity as a tool, computers will be but a ripple rn> on the surface of our culture. In their capacity as intellectual rn> challenge, they are without precedent in the cultural history of rn> mankind." rn> rn> Dijkstra enriched the language of computing with many concepts and rn> phrases, such as structured programming, separation of concerns, rn> synchronization, deadly embrace, dining philosophers, weakest rn> precondition, guarded command, the excluded miracle, and the famous rn> "semaphores" for controlling computer processes. The Oxford English rn> Dictionary cites his use of the words "vector" and "stack" in a rn> computing context. rn> rn> Dijkstra enjoyed playing Mozart for his friends on his Boesendorfer rn> piano. He and his wife had a fondness for exploring state and national rn> parks in their Volkswagen bus, dubbed the Touring Machine, in which he rn> wrote many technical papers. rn> rn> Throughout his scientific career, Dijkstra formulated and pursued the rn> highest academic ideals of scientific rigour untainted by commercial, rn> managerial, or political considerations. Simplicity, beauty, and rn> eloquence were his hallmarks, and his uncompromising insistence on rn> elegance in programming and mathematics was an inspiration to rn> thousands. He judged his own work by the highest standards and set a rn> continuing challenge to his many friends to do the same. For the rest, rn> he willingly undertook the role of Socrates, that of a gadfly to rn> society, repeatedly goading his native and his adoptive country by rn> remarking on the mistakes inherent in fashionable ideas and the rn> dangers of time-serving compromises. Like Socrates, his most rn> significant legacy is to those who engaged with him in small group rn> discussions or scientific correspondence about half-formulated ideas rn> and emerging discoveries. Particularly privileged are those who rn> attended his reading groups in Eindhoven and Austin, known as the rn> "Tuesday Afternoon Clubs". rn> rn> At Dijkstra's passage, let us recall Phaedo's parting remark about rn> Socrates: "we may truly say that of all the men of his time whom 论坛

没有更多推荐了,返回首页