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

计算机科学奠基人,图灵奖获得者,这个时代最伟大的计算机科学家以上文字摘录自一段图灵奖颁奖词 这是 1972 年 8 月 14 日在波士顿举行的计算机学会年会上 由图灵奖委员会主席麦克罗伊 亲自颁发给一位被后世称为计算机科学奠基人之一 编程界先驱的传奇级人物 艾兹格 W 迪杰斯特拉

欢迎大家来到IT世界,在知识的湖畔探索吧!

程序员的工作中布满了由他提出的词汇——显示、死锁、信号量、无GOTO程序设计、结构化编程…… 但他对程序设计的影响力远非任何术语表所能阐示。

……

ALGOL高级编程语言已经成为结构清晰、数学基础严谨的一个典范,而他是ALGOL语言的主要贡献者之一。他为我们理解程序语言的结构、表示方法与实现做出了巨大的贡献。

……

他创造、展现着美丽且有用表达方式,设计与实现了第一个ALGOL60编译器。

以上文字摘录自一段图灵奖颁奖词,这是1972年8 月14日在波士顿举行的计算机学会年会上,由图灵奖委员会主席麦克罗伊,亲自颁发给一位被后世称为计算机科学奠基人之一、编程界先驱的传奇级人物——艾兹格·W. 迪杰斯特拉(Edsger W. Dijkstra)。

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



欢迎大家来到IT世界,在知识的湖畔探索吧!

如果你觉得“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 后来还曾在采访中说,他的最短路径算法之所以能如此简洁,是因为当时在咖啡店里没有纸和笔,这强迫他在思考时避免复杂度,尽可能追求简单。事实上,只要你稍加关注他的访谈和文章,经常能发现一个主题:资源的匮乏往往最能激发创造性。

当时的算法研究还比较原始,牛人们忙着用计算机搞数值计算,对离散算法不屑一顾;学家们都不认为这能成为一个数学问题:两点之间的路径数量是有限的,其中必然有一条最短的,这算什么问题呢?所以那时连一个象样的专注于离散算法的专业期刊都没有。因此Dijkstra推迟发表了自己算法处女作,直到1959年,他才把这个算法当做捧场发表在了Numerische Mathematik的创刊号上。Dijkstra因为最短路径算法一战成名,在之后的几十年里,直到今天,这个算法被广泛应用在各个行业。

1952至1956年间,程序设计经历了一个演变的过程,一方面是由于系统分组的复杂性要求一个更具结构性的操作系统,另一方面是由于科学、数学上关于程序设计的态度都提出了一个清楚的、关于如何提高工作效率的观点。Dijkstra的最短路径算法是在这方面取得的突出进展,Dijkstra可以说是因此一战成名。

因为这种演变是全球性的,在全世界的推动下,一个科学的计算机语言基础:ALGOL,不久就诞生了。

在没日没夜地工作了8个月后,Dijkstra搞出了Algo60,为了Algo60,Dijkstra发表了一篇石破天惊的文章:Recursive Programming。至此人们才知道,原来高级语言也可以高效地实现递归。从此以后,所有程序员都不可避免地和Dijkstra发明的一个词(或者说是概念)打交道:堆栈。

ALGOL让Dijkstra获得了图灵奖,而且Algo60还让Dijkstra深入地思考了多道程序设计的问题,最终发明了每个系统程序员都绕不开的概念:semaphore。

如果说最短路径算法使Dijkstra锋芒初露,那Algo60就使他真正实现了扬名立万。

1958年,Dijkstra代表Dutch MC出席了11月在Mainz召开的会议,那是一个定义ALGOL详述的准备会议,在1958的最后一个月,Dijkstra给ALGOL60下了这样的定义:“一个奇迹就被这样简单的创造了。”

偏见与经典

但是这种小挫折并不能妨碍象Dijkstra这样的牛人创造历史。他一边教数值分析 ,一边开始开发一个新的操作系统,并培养计算机科学家。几年后,THE Multiprogramming System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统没有死锁变得容易的操作系统。

此后 Dijkstra 进入了学术上最活跃的时期,他接着投入到编写结构化编程笔记中去,尽管Eindhoven的同事们对此不是保持沉默、就是完全消极的反应,但Dijkstra选择了正确的还击方式:他给欧洲和美国的同事们复印了20多份稿件。

于是经典就此诞生了,Dijkstra从此被尊为结构化编程的奠基人。

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

传奇仍在继续,由于计算机变得越来越强大,程序设计和维护的方式跟不上软件复杂度的快速上升,世界进入了“软件危机”。1968年,Dijkstra给ACM通讯写了一篇短文,该文后改成信件形式刊登,以便早日发表,这就是具有历史意义的、著名的“Go To Letter”。

Dijkstra在信中建议:“Go To语句太容易把程序弄乱,应从一切高级语言中去掉;只用三种基本控制结构就可以写各种程序,而这样的程序可以由上而下阅读而不会返回”。这封信引起了激烈的讨论。人们逐渐认识到:不是一个简单地去掉Go To的问题,而是促进一种新的程序设计观念、方法和风格,以期显著提高软件生产率和降低软件维护代价。

在1960 年代后期,Dijkstra解决了多个图论算法问题,他发表的关于并发程序控制的论文,开创了分布式计算和并发计算的领域,他也首先定义了互斥和死锁并提出了解法。

他和 Jaap Zonneveld 一起写了第一个 ALGOL 60 的编译器,这是最早支持递归的编译器。他们约定项目结束前都不许刮胡子,Zonneveld 在结束后很快剃掉了胡子,而 Dijkstra 从此终身留着胡子。

在分布式计算方面,除了定义前面提到的互斥、死锁等并发控制的基础概念和问题,他还开创了自稳定系统这个子领域,并且是最早对容错系统进行研究的人。

分布式计算最权威的会议是 PODC,“PODC 影响力论文奖”是分布式计算领域最高的荣誉,它认可的是经过时间考验的重要成就。而 Leslie Lamport 曾经评价到,PODC 之所以存在就是因为 Dijkstra。

后来Dijkstra减少了在Eindhoven TH的工作,自1973年起,成为了Burroughs的一名研究员,在工作中,Dijkstra有机会多次参观了在美国的得克萨斯州立大学,整个美国的好客给他和他的妻子都留下了深刻的印象,1984年,他和妻子决定搬到美国,并去到得克萨斯州立大学,开始担任那里的计算机科学学院全职教授,此后在教学生活中Dijkstra不停编写、讨论程序设计技术,一做就是15年。直到69岁,才结束了作为教授的职业生涯。

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

2002年8月6日,与癌症抗争多年的Dijkstra在荷兰Nuenen自己的家中去世,享年72岁。

这一年的 PODC 奖颁给了他,获奖论文是他 1974 年写的一篇关于自稳定系统的论文。为了纪念他,PODC 决定从 2003 年起把这个奖项改名为 Dijkstra 奖。

参考文献:

中科院计算所:
https://mp.weixin..com/s/1iDRnkN25uJoOQ1hiVLy7g

Chinese Software Developer Network :

https://blog.csdn.net/g9yuayon/article/details/44125

Edsger W. Dijkstra本人所著书籍《编程的修炼》 译者序

Dijkstra获图灵奖以后,软件领域又涌现出图形用户界面、面向对象技术等一系列新的里程碑,因特网更是带来一个全新的时代。但是其对于编程领域的技术开发、对于编程语言的发展和程序理论研究的深刻影响却持续至今。

Dijkstra留下了一本编程领域里经典著作中的经典,每一个关注计算机科学技术的本质,冀求在程序和软件领域有长远发展的计算机工作者、教师和学生都不能错过。

我们站在伟人肩上,所以看得更远。

Dijkstra经典著作

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

编程的修炼

作者:[荷兰]艾兹格· W. 迪杰斯特拉(Edsger W. Dijkstra)

译者:裘宗燕

内容简介:

本书是图灵奖获得者艾兹格·W. 迪杰斯特拉最重要的著作,也是编程领域里经典著作中的经典。

作者基于其敏锐的洞察力和长期的实际编程经验,对基本顺序程序的描述和开发中的许多关键问题做了独到的总结和开发。本书讨论了基本顺序程序的本质特征、程序描述和对程序行为(正确性)的推理,并通过从简单到复杂的一系列程序的思考和开发范例,阐释了基于严格的逻辑推理开发正确而可靠的程序的过程。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/128489.html

(0)
上一篇 26分钟前
下一篇 11分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信