Edsger Wybe Dijkstra

“goto有害论”

提出信号量和PV原语,解决了有趣的“哲学家聚餐”问题

银行家算法

最短路径算法的创造者

第一个Algol 60编译器的设计者和实现者

THE操作系统的设计者和开发者

与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。

在与癌症进行了多年的斗争之后,伟大的荷兰计算机科学家Edsger Wybe Dijkstra已经于 2002 年 8 月 6 日 在荷兰Nuenen自己的家中与世长辞!终年72岁。

中文介绍:

  本文转载自:

“http://emilmatthew.51.net/computerScience/scientist/dijkstra/index1.htm“

Edsger Wybe Dijkstra是计算机先驱之一,他开发了程序设计的框架结构。

他的早年经历

Edsger Wybe Dijkstra于 1930年 5月 11日 生于Rotterdam,他的父亲,Douwe Wybe Dijkstra是一位化学家,他的母亲,Brechtje Cornelia Kruyper是一位数学家,这种充满科学气息的家庭背景对于他的职业生涯乃至他的整个人生都有着深刻的影响。Edsger Wybe Dijkstra在当地的Gymnasium Erasmianum读高中,1948年,他考入了Leyden大学。他在联合国从事法律方面的工作时却在怀念在Erasmianum的日子,现在,他选择了数学和物理。

首次体验程序设计

Edsger Wybe Dijkstra在三年之内取得了学士学位,这令他的父亲非常高兴,并在1951年9月同意他去英国参加一个夏季的课程,那是一个由剑桥大学开设的,学习电子计算装置程序设计的课程,讲师是著名的M. V. Wilkes。Edsger Wybe Dijkstra的导师让他给Amsterdam数学中心计算部门的主管Aad van Wijngaarden写一封信,以确定他的基础知识是否足够他去完成该学业。

在那一年前,Van Wijngaarden曾在剑桥学习过,他很快便回复了,信的内容有两点,一是肯定Dijkstra现有的知识已经足够了,而是请他来Amsterdam作为一名程序设计人员为自己工作。

对于Dijkstra来说,当时还是一名学生,而他在1951年夏季Wilkes所授的学业成为了他日后职业生涯的基础。

在数学中心的“自由阶段”

在没有任何相关知识的情况下,Dijkstra的程序设计生涯开始于改写突变程序和输入Van Wijngaarden已经写好的程序。Van Wijngaarden允许他这样做,这些程序是为MC第一台计算机ARRA I开发的,由C.S. Scholten和J. Loopstra设计完成。

MC计算部门夜以继日的工作,去解决有关那些在Netherland开发的大的方案中为数众多的难题。例如关于Zeeland州安全问题的DELTA计划。

另外一个较大的工程是Fokker友谊飞机的开发,其机翼振动的计算结果需要MC尽最大的能量。

1953年Gerrit Blaauw加入了MC的队伍。第一台ARRA II 构造完成,由于这台机器的可靠性,Fokker飞机公司又订了一台类似的计算机,叫做FERTA。FERTA的速度是ARRA II 的两倍,而且用一套不同类型的代码。Dijkstra为这些机器都研制开发了软件,也包括其后1956年的ARMAC,那也是为MC开发的最后一台计算机。

在完成了FERTA之后,Gerrit Blaauw去往美国为IBM工作,在那里,他从事IBM7030“Stretch”的开发工作,并最终设计和建造了IBM 360系统。

新的挑战:Electrologica

由于巨大、精于计算的机器的开发以走上正轨,Dijkstra, Scholten 和Loopstra又以完成了下一台计算机的准备工作,1956年,MCmanagement和人寿保险公司Nillmij决定成立一个独立的公司:Electrologica,来经营商业电脑。

因此,Electrologica立即开始研发其第一台品牌机器:the Electrologica X1。

崭新的计算机语言:ALGOL

1952至1956年间,程序设计经历了一个演变的过程,这部分是由于系统分组的复杂性要求一个更具结构性的操作系统,部分是由于科学、数学上的关于程序设计的态度都提出了一个清楚的关于如何提高工作效率的观点。Dijkstra的Shortest Path Algorithm是在这方面取得的突出进展,因为这种演变是全球性的,所以,在全世界的推动下,一个科学的计算机语言基础:ALGOL,不久就诞生了。

1958年,Edsger Dijkstra代表Dutch MC出席了11月在Mainz召开的会议,那是一个定义ALGOL详述的准备会议。1959年12月,Dijkstra给ALGOL60下了这样的定义:“一个奇迹就被这样简单的创造了。”最后,1962年的4月,罗马公约同意了其大部分的详述,同年8月,IFIP,国际程序设计语言联盟复查并批准了该报告。

1960年的1月,在ALGOL60被定义之后,数学中心首先在荷兰开设了ALGOL60程序设计语言的课程,接着,1961年在英国的Brighton。这是MC一个新的开端:程序设计教育。

TH Eindhoven:机会与欺骗

1962年,Edsger Dijkstra在TH Eindhoven任全职教授,虽然在国外已经被认为是计算机科学的主席,但Dijkstra强烈反对这个方法,这主要是由于在专业科学知识上的缺乏。他的位置实际上是一个数学教授,他的学生接受了至少三年彻底的数学教育,经过这样一个时期,他们都能作为信息学方面的专家了。那些数学训练是以应用数学原理为基础的。由此,信息学有了适合其学科本身的数学方法。

1967年,Dijkstra陷入了情绪上的危机,他第一个学生的论文被他在Eindhoven数学上的同事拒收了,而这些同事对于计算机科学一直是带有偏见的。对于他和他的妻子来说,那段不景气的日子是他们一生中最困难的时期。但是他很快有恢复了,并开始投入编写:结构化编程笔记。

而Dijkstra在Eindhoven的同事对此不是保持沉默,就是完全消极的反应,但Dijkstra选择了正确的还击方式:他给欧洲和美国的同事们复印了20多份稿件。

Burroughs和彻底的自由

1973年,Dijkstra成为了Burroughs的研究员,他减少了在Eindhoven TH的工作。这个决定使他能够去写科学报告,他为Burroughs写了500多篇,还可以如愿的出国旅行。他成了一个自由人,而且拥有该公司最小的实验室:他的书房。

Austin:新纪元的起点

Dijkstra在旅行途中多次有机会参观在Austin的得克萨斯州立大学,在那里他还做过几次讲座。1984年,他有了一个担任那里计算机科学学院的全职教授的机会,他觉得他在那里会感到像家一样,于是他和他的妻子搬到美国居住。这便开始了他15年的教学生活:编写、讨论程序设计技术。除此以外,整个美国的好客给他和他的妻子都留下了深刻的印象。

得克萨斯州立大学:超型计算机

1999年,Dijkstra在他69岁的时候,结束了作为教授的职业生涯。回顾47年的艰苦工作,为了一个更好、更简单、更准确的编程方法而不停地努力奋斗,使“符号、说明清楚”。Dijkstra认为最具价值的是他对学生的教导,而且能够向人们展示这项工作可以做的比他们所知或所想象的更加出色。能够做到吸引他人,已经成为了他最有收获的活动。

“对于我来说,计算机科学上的第一个挑战是如何把命令维持在有限个内,然而巨大的、分立的宇宙是复杂地缠绕着的。第二个也是同样重要的挑战是如何传授解决那第一个问题的方法:只培养你个人的才智(那会随你进入坟墓的东西)是不够的,你必须教会其他人如何去发挥他们的才智。你越关注这两个挑战,你越会清楚的看到它们只不过是同一枚硬币的两个面:自学是去发现什么东西是可以被教会的。”
("My hopes to Computer Science")

Edsger Wybe Dijkstra因患癌症于 2002年 8月 6日 在Nuenen, The Netherlands逝世 。

艾兹格·迪科斯彻(Edsger Wybe Dijkstra)相关推荐

  1. Edsger Wybe Dijkstra

    埃德斯加·狄克斯特拉(Edsger Wybe Dijkstra)(May 11, 1930 – August 6, 2002;)是1950年代ALGOL语言的一个主要贡献者.ALGOL高级编程语言已经 ...

  2. 迪杰斯特拉算法(Dijkstra)求最短路径Python

    迪杰斯塔拉(Dijkstra)算法求最短路径 序 关于Dijkstra Dijkstra算法讲解 Dijkstra算法的弊端 第一步:进行初始化 第二步:主程序开始 又是初始化 核心的核心[^5] 最 ...

  3. 迪杰斯特拉算法(Dijkstra‘s algorithm)以及示例

    迪杰斯特拉算法(Dijkstra's algorithm)是一种非常重要且有价值的算法.它被广泛应用于计算图中单源最短路径问题,在交通路线规划.网络路由.作业调度等领域有着广泛的应用. 迪杰斯特拉算法 ...

  4. 瑜伽,不仅仅是瑜伽,敬艾扬格大师

    一开始接触这本书的时候,只是纯粹处于对瑜伽的热爱,在瑜伽馆里打发时间之用,只是没有想到,看了几章之后,彻底喜欢了,不仅仅改变了我最初对瑜伽的理解也让我对生活中的一些事情看的更开阔了,对生命的感悟.如果 ...

  5. 算法系列——迪杰斯特拉算法(Dijkstra)

    本系列旨在用简单的人话讲解算法,尽可能避免晦涩的定义,读者可以短时间内理解算法原理及应用细节.我在努力! 本篇文章编程语言为Python,供参考. 迪杰斯特拉算法(Dijkstra) 典型最短路径算法 ...

  6. 手撕迪杰斯特拉算法(Dijkstra)及代码(附图解)

    文章目录 迪杰斯特拉(Dijkstra)算法 1.算法思想及其步骤 2.代码 2.1 相关声明 2.2 有权图的建立函数定义 2.3 核心算法:迪杰斯特拉 迪杰斯特拉(Dijkstra)算法 引言:我 ...

  7. 迪杰斯特拉算法实现-Dijkstra 简单版

    迪杰斯特拉算法实现单源最短路 使用了 邻接表来存放图的信息,使用了优先级队列. #include <iostream> #include<queue> #include< ...

  8. 大话数据结构-迪杰斯特拉算法(Dijkstra)和弗洛伊德算法(Floyd)

    6 最短路径   最短路径,对于图来说,是两顶点之间经过的边数最少的路径:对于网来说,是指两顶点之间经过的边上权值之和最小的路径.路径上第一个顶点为源点,最后一个顶点是终点. 6.1 迪杰斯特拉(Di ...

  9. 迪杰斯特拉算法(Dijkstra)证明

    首先,这篇文章是在讲<图论>时候写文章 (所以,还是以理论为主,以后有空的时候,会把代码发上来,不过我觉得大家看完理论,如果讲得好,代码也就比较容易了.如果讲得不好,网上的代码也是大把,不 ...

最新文章

  1. CICS FILE OPEN
  2. sqlserver date转nvarchar_数据库干货:整理SQLServer非常实用的脚本
  3. 前端随笔整理[5.14]
  4. [置顶]tcpflow 抓包
  5. 16位的数字高字节和低字节_显示8位数字的较低和较高半字节的掩蔽| 8086微处理器...
  6. 网易云的朋友给我这份339页的Android面经,满满干货指导
  7. bbb sdk6编译流程
  8. OCP-052考试题库汇总(60)-CUUG内部解答版
  9. centos系统时间不准
  10. c++ 应用socket实现C/S端文件的传输
  11. dmg镜像如何写入u盘_最全macOS官方全家桶原版系统镜像
  12. Oracle 12C 最新 PSU 补丁下载与安装操作指北
  13. 正则 纳税号_正则表达式号码靓号类型判断代码
  14. Win7环境下STAF安装STAX遇到的问题及解决方法
  15. linux 截取某一段时间的日志,存储到另一个文件中
  16. Wincc 编辑颜色对应c脚本返回的十进制数
  17. 中心差分法编程C语言,中心差分法的基本理论与程序设计.docx
  18. TP-Link SR20远程代码执行动态调试
  19. python实现用户输入用户名和密码、当用户名为seven_【Python基础】练习题
  20. _bstr_t与BSTR

热门文章

  1. 汇编程序设计:lib库的使用以及建立宏库
  2. 迅雷看看仿效360的推广方式
  3. 1688按关键字搜索商品 API 返回值说明
  4. 【EfficientNet论文笔记】
  5. 余世维:有助于事业成功,沟通创造的三种价值
  6. photoshop备忘录(连载中)
  7. Word页码设置-减去封面
  8. 深度特写|那些想破解苹果FaceID的顶级黑客,失败了!
  9. ad域与linux同步时间同步,AD时间同步原理分析
  10. [德ALL]没村往事