清澈如初|计算机科学奠基人,图灵奖获得者,这个时代最伟大的计算机科学家

程序员的工作中布满了由他提出的词汇——显示、死锁、信号量、无GOTO程序设计、结构化编程...... 但他对程序设计的影响力远非任何术语表所能阐示 。
......
ALGOL高级编程语言已经成为结构清晰、数学基础严谨的一个典范 , 而他是ALGOL语言的主要贡献者之一 。 他为我们理解程序语言的结构、表示方法与实现做出了巨大的贡献 。
......
他创造、展现着美丽且有用表达方式 , 设计与实现了第一个ALGOL60编译器 。
以上文字摘录自一段图灵奖颁奖词 , 这是1972年8 月14日在波士顿举行的计算机学会年会上 , 由图灵奖委员会主席麦克罗伊 , 亲自颁发给一位被后世称为计算机科学奠基人之一、编程界先驱的传奇级人物——艾兹格·W. 迪杰斯特拉(Edsger W. Dijkstra) 。
清澈如初|计算机科学奠基人,图灵奖获得者,这个时代最伟大的计算机科学家如果你觉得“Edsger W. Dijkstra”这个名字陌生又熟悉 , 那很正常 , 大部分中国程序员如果眼熟这个名字 , 都是因为学过计算最短路径的 Dijkstra 算法;不过因为他是荷兰人 , 名字不符合英语的发音规则 , 导致大部分人都难以记住这个名字正确的拼写 。
Dijkstra 的伟大贡献包括:

  • 提出“goto有害论”;
  • 提出信号量和PV原语;
  • 创造Dijkstra最短路径算法和银行家算法;
  • 第一个Algol 60编译器的设计者和实现者;
  • THE操作系统的设计者和开发者;
他的根本性贡献覆盖了很多领域 , 包括:编译器、操作系统、分布式系统、程序设计、编程语言、程序验证、软件工程、图论......等等 。 他的很多论文为后人开拓了整个新的研究领域 。 我们现在熟悉的一些标准概念 , 比如互斥、死锁、信号量等 , 都是 Dijkstra 发明和定义的 。
没错 , 这是一位真正理论和编程两手硬的传奇伟人 。
Dijkstra的传奇人生
科学家家庭的学霸
Dijkstra在鹿特丹长大 , 他的父亲Douwe Wybe Dijkstra是一位化学家、他的母亲Brechtje Cornelia Kruyper是一位数学家 。 这种充满科学气息的家庭背景对于他的职业生涯乃至他的整个人生都有着深刻的影响 。 Dijkstra在当地的Gymnasium Erasmianum读高中 , 由于高中毕业时数学、物理、化学、生物都是满分 , 在老师和父母的劝说下 , 他于1948年考入了Leyden大学学习理论物理学 。
在大学期间 , 世界上最早的电子计算机出现了 。 由于Dijkstra在三年之内就取得了学士学位 , 这令他的父亲非常高兴 , 并在1951年9月同意他去英国参加一个由剑桥大学开设的夏季课程 , 学习电子计算装置程序设计的课程 。 这个课程的讲师是著名的M. V. Wilkes , 由于出色的知识储备(超级学霸) , 当时还是一名学生的Dijkstra获得了一个难得的机会——Van Wijingaarden请他来阿姆斯特丹作为一名程序设计人员为自己工作 。 至此 , Dijkstra的程序设计生涯开始了 。
1956 , 一个奇迹被“简单”的创造了
在阿姆斯特丹Dijkstra首次体验了程序设计 , 之后陆续为很多机器研制开发了软件 , 1956年为了展示新计算机ARMAC的计算能力 , 初试身手的Dijkstra搞出了他的算法处女作——Shortest Path Algorithm , 也就是著名的最短路径算法 。 据Dijkstra自述 , 他搞出最短路径算法的时候连纸笔都没用 。 当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒太阳喝咖啡 , 突然就把这个算法想出来了 。
Dijkstra 后来还曾在采访中说 , 他的最短路径算法之所以能如此简洁 , 是因为当时在咖啡店里没有纸和笔 , 这强迫他在思考时避免复杂度 , 尽可能追求简单 。 事实上 , 只要你稍加关注他的访谈和文章 , 经常能发现一个主题:资源的匮乏往往最能激发创造性 。


推荐阅读