最近看一些专业课的书籍,在不同的书本上看到了Dijkstra(迪杰斯特拉)这个名字;可以毫不夸张地说,凡是学信息相关专业的学生都应该听说过他的名字(课堂上曾提到的“迪杰斯特拉算法”就是他提出来的,在考试中也经常遇到)。但是,除了这个之外,大家对他的了解应该是很少的,所以,我认为他是我们“最熟悉的陌生人”。对于这位“陌生人”,我深感好奇,于是上网查找了一些有关这位计算机科学家的资料。在此,与大家分享,也算是对这位大师的贡献表示认可吧。
首先说一下他出现在我们课本上的哪些地方。第一,在《计算机网络》(谢希仁编著,第五版)教材的第152页出现了Dijkstra提出的“最短路径算法SPF”,不过,在此作者没有详细介绍该算法,而是在本书配套的光盘中进行了详述;第二,在《算法设计与分析》(陈慧南编著)教材的第124页出现了Dijkstra提出的单元最短路径算法—“迪杰斯特拉算法”,在此作者详细介绍了此算法,其主要思想是用“贪心法”来求最短路径;第三,在《操作系统教程》(黄刚、徐小龙、段卫华编著)教材的第76页,出现了Dijkstra提出的信号量与P、V操作机制,为在操作系统中进行并发进程的分析奠定了基础。
看来,Dijkstra是经常与大家“见面”,并且也被经常放在了考卷中,我想大家对他可能是又爱又恨吧。
同时我也上网搜了一下有关他的资料,以下作简要的说明。
Dijkstra全名为Edsger Wybe Dijkstra(1930/5/11~2002/8/6),是荷兰人。他是20世纪最伟大的计算机科学家之一,曾获1972年图灵奖,与D. E. Knuth(高唐纳)并称为20世纪最伟大的计算机科学家。他的主要贡献有如下几个方面:1)提出“goto有害论”;2)提出信号量和PV原语;3)解决了有趣的“哲学家聚餐”问题;4)最短路径算法(SPF)的创造者;5)第一个Algol 60编译器的设计者和实现者;6)THE操作系统的设计者和开发者。可以看出,他的一生对计算机科学的贡献极大,值得我们学习。
我国著名计算机专家王选院士在Dijkstra逝世后,发表了一篇文章《从Dijkstra谈帅才的洞察力》来纪念这位大师。在文中,王选院士缅怀了先驱Dijkstra的历史功绩,并对中国计算机产业的发展提出了看法。Dijkstra被西方学术界称为“结构程序设计之父”和“先知先觉”,他一生致力于把程序设计发展成一门科学。王选院士对Dijkstra的洞察力(Vision和Insight)很是敬佩,并举了几个例子来说明。例如,他解决编译系统中的关键问题,提出了同步进程的协调和操作系统的结构,论证了“GoTo语句有害“和结构程序设计等。同时,Dijkstra实践了“吾爱吾师,但吾更爱真理”这句话,为了坚持真理,他不惜反对恩师。这体现了一个科学家的基本素质,那就是不惧权威,真理为上。他的一些名言警句至今也很有现实意义,如:“有效的程序员不应该浪费很多时间用于程序调试,他们应该一开始就不要把故障引入。”以及“程序测试是表明存在故障的非常有效的方法,但对于证明没有故障,调试是很无能为力的。”等。
“追逼圣贤,乃是读书人的本意”,在20世纪计算机科学的发展前途尚不明朗之时,Dijkstra能够洞穿其发展,致力于理论和应用的研究,其远见与智慧不得不令人惊叹;在与导师科学观点不和时,他能够坚持真理,其人品与胸怀确实让人敬佩。现在我们有许多人感叹自己资质不好,或是周围的环境太差,因此过着“做一天和尚撞一天钟”的生活。以上这些干扰不过是一些外界因素,真正对自己一生的发展起作用的是个人的看法、是个人的选择。有人说得好,我们感觉伟人们太伟大,自己不敢仰望,那不是因为他们太高大,而是因为我们自己认为自己太渺小了!李开复老师也说过,做任何事情我们都要反复叩问自己的内心,向人生更远的方向看去,而不是被眼前的喧嚣所迷惑!
向Dijkstra学习!