No.433 1972年第7届图灵奖得主、Dijkstra最短路径算法、栈、中断、集合等一众发明的人:迪杰斯特拉 – 栋哥的赛博空间

No.433 1972年第7届图灵奖得主、Dijkstra最短路径算法、栈、中断、集合等一众发明的人:迪杰斯特拉

对于每个行业和领域来说,几乎都有一两个被视为“终极荣誉”的大奖。比如电影界的奥斯卡奖、新闻界的普利策奖,数学界的沃尔夫奖和费尔兹奖等等。随着计算机通讯领域的快速发展,”图灵”这个词经常在各种场合中出现,被称为计算机界的诺贝尔奖。

“图灵(Turing)奖”是美国计算机协会(ACM,Association for Computer Machinery)于1966年设立的,旨在表彰对计算机科学研究和推动计算机技术发展做出卓越贡献的杰出科学家。该奖项的设立初衷是因为计算机技术的迅猛发展,尤其是在20世纪60年代,计算机科学已经成为一个独立且具有影响力的学科,信息产业也逐渐形成。然而,在这个产业中长期以来一直没有类似于”诺贝尔奖”或”普利策奖”等奖项来促进该学科的进一步发展。为了弥补这一缺失,”图灵奖”应运而生,并被公认为计算机界的”诺贝尔奖”。该奖项旨在给予计算机科学领域的杰出人士应有的荣誉和认可。

这个奖能有这么大的影响力,最主要的还是获奖的人确实有实力。这个很重要,如果今年11月份,图灵奖颁发给了栋哥,那完了,彻底完蛋了。作为反例,科幻小说界有个雨果奖,再这么玩下去,肯定越来越没有影响力。人家图灵奖运营的好。

现在Google赞助奖金,100万美元,跟诺奖相当。在之前,好像是从2007年开始,是Intel与Google共同赞助,有25万美元,在2013年的时候,合同到期了,Intel退出了赞助行列,Google说,我有钱,直接100万。我觉得给这么多奖金,对名声也是有好处的。在之前,尤其是早期,获图灵奖只有1000美元奖金,那时候,你实际上是有点不好意思说自己是计算机界的”诺贝尔奖“的,因为人家发100万美元,你发1000块,说这句话是没底气的。至少我是这样认为的,你们可以认为我拜金。

当年图灵奖没那么有影响力,本期的主人公,第7届得主Dijkstra当年在学校里做操作系统,得了图灵奖,Dijkstra当年跟他的主任关系不好,他的系主任听说后,第一反应是啥是图灵奖,你们搞计算机就喜欢乱发奖。然后把Dijkstra的操作系统的研究经费停了,Dijkstra得了几年抑郁症。

再来说一下为什么叫图灵奖,而不是叫“丘奇奖”,不是叫“冯诺伊曼奖”呢?这几个人对计算机界的贡献,跟图灵相比,如果不说比图灵强大的话,至少也是相当。(平心而论,我觉得冯诺伊曼比图灵要厉害,而且确实也有个奖叫冯诺伊曼奖,不过,名气远没有图灵奖这么大)

冯诺伊曼奖是IEEE颁发的,时间上要晚了,要到1990年才开始发第一届。有三位科学家得过图灵奖的,后来又发了IEEE的冯诺伊曼奖,比如大家应该都知道的高德纳,这个是1974年获得的图灵奖,下周就能讲到他了。还有其它两位要到1986年和2010年再讲,现在才讲到1972年,大家不要着急。

不少人梦寐以求的国际计算机的最高奖项——图灵奖,为何它如此幸运,真是说来话长。

我再多讲几分钟图灵,毕竟是图灵奖,虽然我的电台专门讲过图灵,但是毕竟有很多新听众,可能没听过。阿兰·图灵(Alan Turing),1912年6月23日出生于英国伦敦,他被认为成二十世纪最著名的数学家之一,谁也没有想到他的名字会和计算机产业挂钩。

他为什么被称为数学家呢?因为他以前是研究数学的。20世纪,数学上最让人震惊的发明是:哥德尔的不完全性定理。这个定理是由奥地利逻辑学家库尔特·哥德尔(Kurt Gödel)于1931年发表的。这个定理的核心思想是,在足够强大的数学公理系统中,总存在一些命题,既无法被证明为真,也无法被证明为假。这就意味着,这样的数学系统是不完备的。​​

哥德尔的发现是基于形式化数学的基本原理之一,即哥德尔的编码方法和自指性。他将数学语句和数学对象进行编码,并构建了一个名为哥德尔编号系统的形式系统。通过这个系统,哥德尔能够将许多数学命题转化为关于自然数的算术命题。

关键的一步是哥德尔构造了一个名为”哥德尔句子”的命题,它表述了自己的不可证明性。这个句子的核心思想是:”我不能被该系统内的任何公式证明”。如果这个句子能够在该系统中被证明为真,那么它的否定也应该能够被证明为真,这将导致矛盾。相反,如果不能证明它为真,那么它就是不可证明的。

根据哥德尔的定理,任何足够强大的形式化系统都会存在无法被该系统内部规则证明的命题。这意味着,无论我们如何努力,总会存在一些问题无法通过内部系统自身得到确定的答案。

此外,哥德尔的不完全性定理的思想也可以应用于哲学和人类认知的领域。它提醒我们,人类的认知和推理能力也存在局限性,我们无法完全捕捉和解释现实世界的复杂性。

咱们都学过数学,虽然大部分人,包括我在内,学的其实叫算术,与数学的关系相当于没关系。以前学数学的时候,咱们总是会做错题,150分的题目,考15,错了135分。为什么?因为做错了啊。这一点和数学家是一样的,在不完全性定理之前,数学家们(其实也包括咱们在内的任何人)总认为,一个数学问题虽然要找到答案也许会很困难,但理论上总有一个确定的答案,一个数学命题,要么是真的,要么是假的。而哥德尔的不完全定理指出:在一个稍微复杂一点的的数学公理系统中,总存在那样的命题,我们既不能证明它是真的,也不能证明它是假的。

数学家们大吃一惊,发现以往大家认为绝对严密的数学中,原来有令人如此不安的不确定性。当然了,这个不确定性与考试的算术没有一毛钱关系,咱们150分考15分,唯一的原因是太笨,还上升不到用哥德尔的不完备定理来证明的角度。当时每个逻辑学家、数学家都在苦苦思索,试图为陷入了危机的数学找到一条出路,这些逻辑学家包括当时在剑桥的贝特朗.罗素( Bertrand Russell ) 、阿尔弗雷德.怀特海(Alfred Whitehead)、路德维格.维特斯根坦 ( Ludwig Wittgenstein) 等著名的逻辑学家。这时的图灵正在剑桥求学,他也同样为此问题陷入了困境。

在1936年,图灵做出了他一生中最重要的科学贡献之一。他发表了一篇名为《论可计算数在判定问题中的应用》的论文,这篇论文以布尔代数为基础,描述了一种通用的机器,能够用数学符号来表示和完成逻辑中的任意命题,并按照一定的规则进行推导和得出结论。这个机器被后人称为”图灵机”,这篇论文也被誉为现代计算机原理的开山之作。

这种假想的机器由一个控制器和一个两端无限长的工作带组成。工作带被划分成一系列大小相同的方格,每个方格上都有给定字母表上的符号。控制器带有读写头,并且可以根据需要在工作带上左右移动。通过控制器的移动,读写头可以读取方格上的符号,同时也可以修改方格上的符号。这种机器能够执行多种运算,并且可以用于证明一些著名的定理。这个模型被认为是最早提出的通用计算机模型。图灵还从理论上证明了这种假想机器的可行性。尽管当时图灵机只是一个理论构想,但其思想为整个现代计算机的发展奠定了基础。

图灵的论文与哥德尔的不完全性定理存在一些关联和相互影响,尽管它们探讨的是不同的问题领域。

图灵的论文主要涉及可计算性理论和机械计算的概念。他提出了一种理论模型,即图灵机,它是一种假想的计算设备,可以执行一系列算法和计算过程。图灵机的关键思想是,它能够模拟任何其他计算设备的功能,只要这些功能是可计算的。

哥德尔的不完全性定理则是关于形式化数学系统的性质和局限性的结果。该定理表明,在足够强大的数学公理系统中,总存在无法被该系统内部规则证明的命题。这意味着数学系统的不完备性,即存在某些命题无法确定其真假。

这两个理论在一定程度上相互关联。哥德尔的不完全性定理揭示了数学系统的局限性,它表明在某些情况下,我们无法通过内部规则推导出所有命题的真假。而图灵的论文则探讨了计算问题的可计算性,提出了一种通用的计算模型。这个模型不受具体数学系统的限制,可以模拟各种可计算的计算过程。

在某种程度上说,哥德尔的不完全性定理暗示了一些命题无法被任何形式化的数学系统证明,而图灵的论文则提供了一种通用的计算模型,可以对这些未能被证明的命题进行计算和推导。图灵机的概念为计算机科学的发展奠定了基础,并对我们对计算和推理的认识产生了深远的影响。

后来的话,就是二战了。图灵活就去破解德军的密码了,图灵便和历史上著名的布莱奇利公园以及加密电子机械装置ENIGMA联系在了一起。

ENIGMA是德国发明家亚瑟·谢尔比乌斯(Arthur Scherbius)发明的一种加密电子设备。它被证明是有史以来最可靠的加密系统之一,在二战期间被广泛应用于德军的铁路和企业中。这使得英国第40局(负责破译密码的英国政府间谍机构)感到恐慌,因为他们无法解读大量的电文。长达13年的时间里,英国和法国都认为ENIGMA是无法破译的。

为了应对这一局面,第40局成立了一个名为英国政府代码及加密学校(GC&CS,Government Code and Cipher School)的机构,总部设在白金汉郡的布莱奇利公园。布莱奇利公园聚集了许多在破译ENIGMA方面做出杰出贡献的人才,而图灵无疑是其中最值得一提的人物。他发明了一种被称为“炸弹”(Bombes)的解密机器,因此被认为是天才级的解密分析专家。

战争结束后,布莱奇利公园关闭,”炸弹”机器被拆除,所有与密码分析和破译有关的战时档案资料都被销毁。直到1967年,波兰出版了第一本关于波兰破译ENIGMA的书籍,以及1974年温特伯坦姆所著的《超级机密 The Ultra Secret》,人们才开始了解到图灵在分析解密方面的重要贡献。

图灵是个同性恋,在1952年因小偷入室行窃,图灵向警察报了案,但他却忘了向警察掩藏他和另一位男士同居的事实,同年他被警方逮捕,以“有伤风化罪”罪名遭到起诉,并被判为有罪。而这期间,他不得不忍受报纸媒体对他案件的公开全面报道。性倾向被公开,私生活曝光于大众,政府也取消了他情报部门的工作。他的脾气变的躁怒不安,性格阴沉抑郁。1954年6月8日,人们在图灵的寓所发现了他的尸体。他在自己的住处服用沾过氰化物的苹果而自杀。

1938年迪斯尼公司著名的动画片《白雪公主和七个小矮人》上映,图灵也观看了这部影片,在后来的日子里,他的同事常常听见他哼电影中巫婆王后泡制毒苹果的台词:“毒液浸透苹果……”而图灵的一生正是在这首歌词中结束。

现在同性恋在很多国家已经被认可了,我也是认可他/她们的。如果你要问我支持不支持同性恋结婚,现在不是很多国家都有这个议题么?你听我讲完我的理由,不要断章取义。我的第一回答是不支持,第二回答是支持。

为什么不支持呢?因为我觉得不止同性恋不应该结婚,异性恋也不应该结婚。本来同性恋是一个非常有力量的团体,可以过得非常幸福,让绝大多数异性恋思考这样一个问题:结婚到底为了什么?从而在让数千年的婚姻制度出现裂痕,最终使这个罪恶的制度彻底瓦解。但是,这些同志,竟然想要结婚,拼了命的说,枷锁,也要给我来一套。我是真的服了这帮老6。我的第二回答是支持,毕竟阎王难劝该死的鬼,既然你想要枷锁,那就满足你好了。

非必要不结婚,什么是必要呢?我没想出来。想出来一个,如果相信阴阳五行的话,比如一个男的火比较旺,可以找一个水多的女生结婚。水火相容,水火既济,这个卦不错。

扯了太多图灵了,这期的主人公叫E.W. Dijkstra,荷兰人。学计算机的一定知道他,最出名的可能就是Dijkstra最短路径算法。这是他一生最不起眼的一项工作,这个工作的起因是这样的。在1956年的时候,Dijkstra搞了一台新的电脑,ARRA电脑。这台电脑是荷兰造的,ARRA(全称为“Automatische Relais Rekenmachine Amsterdam”,意为阿姆斯特丹自动继电器计算器)是第一台荷兰计算机,由继电器构建,为荷兰数学中心(荷兰语:Mathematisch Centrum)建造。他有了这台电脑之后,想测试一下性能怎么样,在跟他老婆谈恋爱的时候,在阿姆斯特丹一家咖啡厅的阳台上晒太阳喝咖啡,顺便走了个神,这个算法就出来了,没用纸,没用笔,没用电脑。回去就实现了这个算法,但是没有发表论文,因为他觉得太过于简单,犯不上为这个简单的东西写一篇论文。

在1959年,有一家叫Numerische Mathematik的杂志创刊,朋友在里面工作,问他说能不能来捧个场啊,来一篇论文充充数。哥们的面子还是要照顾的,但是也不知道写什么,就写一下这个算法吧。于是3年之后,这个算法才当作论文发表在了Numerische Mathematik这个杂志的创刊号上,最短路径算法得以见到天日。至今,最短路径算法跟快速排序算法,仍旧是计算机系最折磨人的两个算法之一。这个算法的应用极其广泛,比如咱们上网用的OSPF协议,或者ISIS协议,都是最短路径算法的实现。感谢Dijkstra,否则小姐姐不会在你的手机上那么丝滑的跳舞。快速排序的作者叫Tony Hoare,Tony老师不止会理发,还会写程序,他在1980年也获得了图灵奖。也是个传奇人物,不奇怪的是,快速排序也是Tony老师一生中最不起眼的贡献之一。

Dijkstra在多个领域牛气冲天,是理论和编程两手硬的高手,理论看不着,摸不到,比较虚。硬件呢,他自己一个人,设计了世界上第一台支持中断的计算机,中断到底有多么重要,可以这么说吧,没有中断就没有现代的计算机。只不过他的很多工作比较深刻,不读到博士没法讲,讲了也听不懂,所以,我们仅仅知道一个最短路径算法,别说写了,抄都抄不对。

Edsger W. Dijkstra于1930年5月11日出生于鹿特丹。他的父亲是一位化学家,曾任荷兰化学会主席;他在一所中学教化学,后来担任校长。他的母亲是一名数学家。迪杰斯特拉曾考虑从事法律职业,并希望代表荷兰参加联合国。然而,1948年从学校毕业后,在父母的建议下,他在莱顿大学学习了数学和物理,然后又学习了理论物理。

20 世纪 50 年代初,电子计算机还是个新鲜事物。 Dijkstra 的职业生涯是偶然的,通过他的导师 Johannes Haantjes 教授,他认识了阿姆斯特丹数学中心计算系主任 Adriaan van Wijngaarden,后者为 Dijkstra 提供了一份工作; 1952 年 3 月,他正式成为荷兰第一位“程序员”。他写了一篇文章叫《The Humble Programmer》,翻译成中文是《谦虚的程序员》,在文章里他讲了这样一个故事:

在进行了大约三年的编程之后,他与A. van Wijngaarden进行了一次讨论,当时A. van Wijngaarden是他在阿姆斯特丹数学中心的老板。在他有生之年,他将一直感激A. van Wijngaarden的讨论。关键是,他本来应该在莱顿大学同时学习理论物理,而当他发现这两项活动越来越难结合起来时,他必须下定决心,要么停止编程,成为一名真正的、受人尊敬的理论物理学家。物理学家,或者只是以最小的努力正式完成他的物理学研究,并成为……,是的什么?程序员?但这是一个受人尊敬的职业吗?毕竟,编程是什么?可以支持它成为一门在智力上受人尊敬的学科的健全的知识体系在哪里?他清楚地记得他是多么羡慕他的硬件同事,当被问及他们的专业能力时,他们至少可以指出他们对真空管、放大器和其他东西了如指掌,而他觉得,当面对这个问题时,他会空手而立。他满怀疑虑地敲开了范·韦恩加登办公室的门,问他是否可以“和他谈谈”;几个小时后,当他离开他的办公室时,他已经变成了另一个人。因为在耐心地听完他的问题后,范·韦恩加登同意在那一刻之前还没有太多的编程学科,但随后他继续平静地解释说,自动计算机将继续存在,我们才刚刚开始,可以难道他不是被召唤在未来几年让编程成为一门受人尊敬的学科的人之一吗?这是他人生的转折点,他尽快正式完成了物理学的学习。

1957 年,迪杰斯特拉 (Dijkstra) 与玛丽亚 (Ria) C. Debets 结婚时,作为结婚仪式的一部分,迪杰斯特拉必须说明自己的职业。他表示自己是一名程序员,这让当局无法接受,因为当时荷兰还没有这样的职业。

1959 年,他在阿姆斯特丹大学获得博士学位,其论文题为“与自动计算机的通信”,致力于描述为荷兰开发的第一台商用计算机而设计的汇编语言, Electrologica X1。他的论文导师是 Van Wijngaarden。

讲到这台X1计算机,还是有一个故事的。这台计算机是阿姆斯特丹数学中心设计的,但是卖货的是一家叫Electrologica NV的商业公司。你想卖电脑,首先要设计出电脑,要不那不成卖PPT了么?谁来设计呢?当时没多少人会设计这玩意,开公司的两个人叫Bram和Carel,他们找了一下,发现全荷兰,可能只有这个叫迪杰斯特拉的有能力搞电脑。于是就学习刘备,三顾茅庐,请诸葛亮出山。当时迪杰斯特拉还在读物理,还没下定决心搞计算机。

这两哥们三天两头的来灌迷魂汤,就跟刘备一样,一顿拍马屁。“愿先生以天下苍生为念,开备愚鲁而赐教。“直接给你整个高帽子。诸葛亮跟迪杰斯特拉都没顶住这糖衣炮弹,出手了。劝人一定要高大上,比如先生不出,苍生无救。为人民服务等,反正词一定要搞的高大上。

幸好,迪杰斯特拉先生是搞计算机的,他自己一个人,搞了3年多,才设计出了第一台支持实时中断的计算机 Electrologica X1,在他搞的计算机上,又是自己一个人搞了编译器,接着,找了一个帮手,在计算机上搞了Algol 60这门彪炳史册的编程语言,这门语言是真的伟大,图灵奖给这门语言的工作者发了好几个奖了。早期的科学家最爱这门语言,现在我们用的几乎所有主流编程语言,都是采用Algol语言的语法体系。所以大家不用去专门学Algol语言,无论你用Java,Python,Go还是Javascript,里面大部分都是Algol语言的影子,独创性不能说没有,从语法跟语义上来说,只能说几乎跟Algol完全一样。

迪杰斯特拉获得图灵奖的重要的工作就是实现了Algol 60这门高级语言。因为Algol60,他还发表了一篇石破天惊的文章:Recursive Programming。在此之前,人们都以为高级语言不可能实现高效的递归,从这篇论文之后,人们才意识到,原来高级语言也可以高效地实现递归。从此以后,所有程序员都不可避免地和他发明的一个词(或者说是概念)打交道:堆栈。

而且Algol 60还让他有机会深入地思考多道程序设计的问题,最终发明了每个系统程序员都绕不开的概念:semaphore,也就是信号量。当然,总是把他发明的概念严格形式化,极具科学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。有兴趣的可以自己搜索一下哲学家吃饭问题,这是一个经典的并发计算中多线程同步时产生的问题。 

哲学家就餐问题可以这样表述,假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌上有五碗意大利面,每位哲学家之间各有一支餐叉。因为用一支餐叉很难吃到意大利面,所以假设哲学家必须用两支餐叉吃东西。他们只能使用自己左右手边的那两支餐叉。哲学家就餐问题有时也用米饭和五根筷子而不是意大利面和餐叉来描述,因为吃米饭必须用两根筷子。

这个问题不考虑意大利面有多少,也不考虑哲学家的胃有多大。假设两者都是无限大。

问题在于如何设计一套规则,使得在哲学家们在完全不交谈,也就是无法知道其他人可能在什么时候要吃饭或者思考的情况下,可以在这两种状态下永远交替下去。

再牛的人,找工作也并不是一帆风顺的。他想去埃因霍温理工大学数学系当教授,原因是当时还没有计算机系。人在屋檐下,怎么不低头。这个学校根本就没意识到他是个什么样的人物,只是看学历,没有受过专业的数学教育,也没读完物理学,还有,学了一些不知道什么鬼东西的计算机。得,给个讲师就已经是很开恩了。

龙游浅水遭虾戏,虎落平阳被犬欺,得志猫儿雄过虎,落毛凤凰不如鸡。在这个学校里,他得了抑郁症,就算他已经拿了图灵奖,数学系的主任说图灵奖是啥玩意啊,该干啥干啥去。在该校期间,他一边对抗自己的抑郁症,一边做操作系统,这个操作系统就是THE Multiprogramming System,简称THE系统。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统没有死锁变得容易的操作系统。可惜,系领导有眼不识泰山,完全没理解他砍的是什么东西,总之,给砍了,因为他根本不懂什么叫操作系统。当没有经费搞操作系统之后,他只能论文了,就是大名鼎鼎的《Notes on Structured Programming》,开启了结构化编程的历史。在这篇论文横空出世之后,他的抑郁症也好了,开挂的人生再次启航。

1972年拿了图灵奖,发了论文,然后,他就去了美国。他在美国奥斯汀的德克萨斯大学任计算机科学教授。他是一位高产的作家。http://www.cs.utexas.edu/users/EWD 这个网址,你可以找到他全部超过3,000篇的作品。

他经常与数百位朋友、同事通信——不是使用电子邮件,而是传统的信件。无论是写学术论文还是写信,他都坚持使用钢笔,而不是计算机。几十年来,他一直避免在自己的工作中使用计算机。即使在他屈服于UT同事的鼓励并获得了一台Macintosh计算机之后,他也只将其用于电子邮件和浏览万维网。Dijkstra 从未使用计算机写过他的文章。他更喜欢依靠他的打字机,后来又依靠他的万宝龙钢笔。Dijkstra 最喜欢的书写工具是万宝龙 Meisterstück 钢笔。

Dijkstra 以用钢笔仔细撰写手稿的习惯而闻名。这些手稿被称为 EWD,因为 Dijkstra 用他的首字母缩写 EWD 作为前缀来编号它们。根据 Dijkstra 本人的说法,EWD 始于他从阿姆斯特丹的数学中心搬到埃因霍温理工大学(当时的埃因霍温工业学院)。去埃因霍温后,迪克斯特拉经历了一年多的写作障碍。他向同事分发了新EWD的复印件。许多收件人影印并转发了他们的副本,因此 EWD 遍布整个国际计算机科学界。主题是计算机科学和数学,包括旅行报告、信件和演讲。这些短文跨越了 40 年的时间跨度。1972 年之后出现的几乎所有 EWD 都是手写的。它们很少超过 15 页,并且是连续编号的。最后一份是第1318号,是2002年4月14日发出的。在计算机科学中,它们被称为 EWD 报告,或者简称为 EWD。已经扫描了 1300 多个 EWD,并且越来越多的 EWD 被转录以方便搜索,并且可以在德克萨斯大学的 Dijkstra 档案馆在线获得。

另一个这么干的人是高德纳,也是坚持用笔写作的人,别人问他这么老土,为什么不用计算机呢?百度输入法这么好用,你咋不用呢?高德纳如是回答:我打字的速度太快了,我的思维跟不上我的打字速度。

他说过很多的名言,我们甚至用过这个名言,在网上的时候,我们经常见到这样一句话:图呢,没图你说个JB啊。一图胜千言,这句话就是他说的,后面一句话我们都不敢用,后面一句话是一条公式胜过一千张图片。

还有一句话广为人知,别人问他计算机会不会思考,他说:“计算机能不能思考?这个问题就好象‘潜水艇能不能游泳’一样。”

当年轻的科学家问他如何选择研究课题时,他回答:“只做你能做的事。”在荣获图灵将之后的演讲中,他说:“作为一种工具,计算机使我们的文化起了浅浅的波澜,但也仅此而已;作为对人类智力的一种挑战,计算机掀起的轩然大波在人类历史上是史无前例的。”

他提出了许多新概念、新术语,大大的丰富了计算机科学的语言。他提出的概念包括结构化程序设计、问题分解、同步、死锁、“哲学家晚餐”、最弱前提……以及著名的用于控制计算机进程同步的“信号量”。牛津英语词典收录了他在计算机科学环境中使用的“vector”和“stack”这两个词。

在他的科学生涯中,Dijkstra一直坚持学院派的高风亮节,不让自己的研究受到来自商业、管理、政治等等因素的影响。简单、优美而又说服力,这就是他的风格。在程序设计和数学领域中,他对“优雅”的一贯坚持激励了成千上万的人。他把自己的工作评价为“最高标准”,并以此鼓励他的朋友做到同样的高度。

另外,他还义无反顾地担当了苏格拉底的角色——城邦的牛虻。他一次又一次地指出时髦观点中存在的错误,象牛虻一样刺激国家这匹“驽马”不断前进。当面向对象甚嚣尘上,他这么评价面向对象编程:面向对象编程是正确编程的替代品。他还反对将软件工程纳入学术计算机科学的范畴。他写道,“正如经济学被称为”悲惨的科学“一样,软件工程应该被称为”注定要失败的学科“,注定要失败,因为它甚至无法接近它的目标,因为它的目标是自相矛盾的。“而”软件工程已经接受了’如果你不能编程,如何编程’作为其章程。

和苏格拉底一样,他最重要的遗产就是那些未完地研讨、归纳了一半的理论和没有完成的探索。所有与他讨论、共事过的人,尤其是那些参加过他在艾恩德霍芬和奥斯汀组织的读书小组(著名的“星期二下午俱乐部”)的人,都从他身上获益匪浅。

他是荷兰皇家科学院的院士、美国国家科学院的院士,同时还是不列颠计算机协会的名誉会员。

他还在1974年获得过美国信息处理学会联合会(AFIPS)颁发哈里·古德奖。

在1982年获得电气电子工程师协会(IEEE)颁发的计算机先驱奖。

在1989年获得美国计算机学会(ACM)为计算机科学教育做出突出贡献者而颁发的SIGCSE奖。

雅典经济大学曾在2001年授予他名誉博士头衔。

2002年,日本的C&C基金会对Dijkstra地评价是:“他对软件基础理论、算法理论结构化和信号机制进行了开创性的研究,为计算机科学奠定了坚实的基础。”

让我们借用裴多给苏格拉底的悼词:“我们毫无疑问地宣称,在我们所知的与他同一时代的所有人中,他是最聪明、最公正、最优秀的。”

引导了并且将继续引导这个星球所有的程序员,他的贡献和影响将与世长存。

5 1 投票
文章评分
订阅评论
提醒

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部