ECO中文网

标题: 1972 艾兹格·迪科斯彻 [打印本页]

作者: shiyi18    时间: 2022-4-15 21:54
标题: 1972 艾兹格·迪科斯彻
Edsger W. Dijkstra

PHOTOGRAPHS
BIRTH:
11 May 1930, Rotterdam, The Netherlands

DEATH:
6 August 2002, Nuenen, The Netherlands.

EDUCATION:
Gymnasium Erasmianum in Rotterdam (1948); undergraduate degree, physics, University of Leyden, (1956); PhD computer science, University of Amsterdam (1959). Honorary Degrees: Queen’s University Belfast, Athens University of Economics and Business.

EXPERIENCE:
Programmer, Computation Department of the Mathematical Centre in Amsterdam (1952–1962); Professor of Mathematics, Eindhoven University of Technology (1962–1973); Research Fellow, Burroughs Corporation (1973–1984); Schlumberger Centennial Chair in the Computer Science Department at the University of Texas at Austin (1984–2000).

HONORS AND AWARDS:
Member of the Royal Netherlands Academy of Arts and Sciences (1971); Distinguished Fellow of the British Computer Society (1971); AFIPS Harry Goode Memorial Award (1974); Foreign Honorary member of the American Academy of Arts and Sciences (1975); IEEE Computer Society Computer Pioneer Award (1982); ACM/SIGCSE Award for outstanding contributions to computer science education (1989); ACM Fellow (1994); ACM Influential Paper Award for: “Self-stabilizing systems in spite of distributed control” Communications of the ACM 17, Vol. 11 (1974), pp. 643–644, 2002 (in 2003 this annual award was renamed the Dijkstra Prize).

EDSGER WYBE DIJKSTRA DL Author Profile link
Netherlands – 1972
CITATION
For fundamental contributions to programming as a high, intellectual challenge; for eloquent insistence and practical demonstration that programs should be composed correctly, not just debugged into correctness; for illuminating perception of problems at the foundations of program design.

SHORT ANNOTATED
BIBLIOGRAPHY
ACM TURING AWARD
LECTURE
RESEARCH
SUBJECTS
ADDITIONAL
MATERIALS
Edsger W. Dijkstra was born in 1930 in Rotterdam, The Netherlands. His father, a high-school chemistry teacher, served as president of the Dutch Chemical Society. His mother, who never held a formal job, had a lasting influence on his approach to mathematics and his emphasis on elegance.

Graduating from high school in 1948 and intending to become a theoretical physicist, Dijkstra thought the ability to use an electronic computer might be advantageous. Three years of programming at the Mathematical Center in Amsterdam convinced him that the intellectual challenge of programming exceeded that of theoretical physics, but where was the sound body of knowledge that could support programming as an intellectually respectable discipline? His boss, A. van Wijngaarden, persuaded him that in the years to come he could be one of the people to make programming a respectable discipline. Completing his study of physics as quickly as he could, Dijkstra forsook physics for programming.

At the Mathematical Centre a major project was building the ARMAC computer. For its official inauguration in 1956, Dijkstra devised a program to solve a problem interesting to a nontechnical audience: Given a network of roads connecting cities, what is the shortest route between two designated cities? The best known algorithms had running times which grew as the cube of the network’s size; the running time of Dijkstra’s algorithm grew only as the square. Developed in 20 minutes while Dijkstra was relaxing on a café terrace with his fiancée, Maria (Ria) C. Debets, his Shortest Path algorithm is still used in such applications as packet-switching software for computer communications.

Around the same time, Dijkstra invented another very efficient network algorithm for use in designing the X1 computer. Known as the Minimum Spanning Tree algorithm, it finds the shortest length of wire needed to connect a given set of points on a wiring panel. He published both network algorithms in a single paper in 1959.[3]  

When Dijkstra and Maria Debets married in 1957, the marriage rites required him to state his profession. When he stated that he was a programmer, the authorities objected that there was no such profession, and the marriage certificate instead identifies him as a theoretical physicist.

While at the Mathematical Center, Dijkstra worked on the very important “real-time interrupt” problem, which became the topic of his Ph.D. thesis [2].  Several computer manufacturers of the day were facing the same problem, but they had not approached the problem with the rigor that Dijkstra applied to it.

At the Mathematical Center, Dijkstra and J.A.Zonneveld developed the first compiler for Algol-60, a high-level programming language designed by an international committee. Completed in August 1960, their compiler predates the second Algol-60 compiler by more than a year. One of Algol-60’s great innovations, for which Dijkstra was instrumental, was the explicit introduction of recursion. He was probably the first to introduce the notion of a “stack” for translating recursive programs, reporting this seminal work in a short article [4].  In the Oxford English Dictionary, the terms “vector” and “stack” in a computing context are attributed to Dijkstra.

In 1962 Dijkstra was appointed Professor of Mathematics at the Eindhoven University of Technology. There he built the THE operating system (named for the university, then known as Technische Hogeschool te Eindhoven), which has influenced the design of many subsequent operating systems. It introduced a number of design principles which have become part of the working vocabulary of every professional programmer. Introducing the reprint of Dijkstra’s article on the THE operating system in the 25th Anniversary issue of Communications of the ACM, the Editor-in-Chief wrote, “This project initiated a long line of research in multilevel systems architecture—a line that continues to the present day because hierarchical modularity is a powerful approach to organizing large systems.”


In 1968, Dijkstra published a brief letter to the editor in Communications of ACM, titled “Go To statement considered harmful”[5], arguing that the GO TO statement, found in many high-level programming languages, is a major source of errors, and should therefore be eliminated. There ensued a giant commotion in the computing community, with combatants taking positions on all sides of the issue. The debate has long since subsided; programming languages now provide alternatives to the GO TO. Few programmers today use it liberally, and most never use it at all.


Around this time, Dijkstra was beginning to formulate some of his early ideas about programming as a mathematical discipline. He pointed out that software productivity and reliability is closely related to rigor in design, which eliminates software flaws at an early stage. He was particularly impressed by the immensity of the so-called “software crisis” when he attended the famous 1968 NATO Conference on Software Engineering, the first conference devoted to the growing epidemic of software delivered late, over budget, and full of flaws. Convinced that programming methodology should become a scientific discipline, he decided to study how to avoid complexity in software designs.


Dijkstra’s “Notes on Structured Programming,” circulated to a few friends for their comments and soon became a sensation, and major corporations initiated programs based on his ideas to integrate rigorous practices into their programming projects. Subsequently published [1] and still in print after nearly 40 years, this work has had far-reaching impact on all areas of computer science, from the teaching of the first courses in programming to the design of complex software. Mathematical analyses of program design and specifications have become central activities in computer science research.


Dijkstra’s acceptance speech for the 1972 ACM Turing Award, titled “The humble programmer”[6], includes a vast number of observations on the evolution of programming as a discipline and prescriptions for its continued growth. It is required reading for any aspiring computer scientist.

In August 1973 Dijkstra joined Burroughs Corporation as a Research Fellow. His duties consisted of consulting at some of the company’s research centers a few times a year and pursuing his own research. Among his significant contributions from this period is the development of a theory of nondeterminacy [7], a concept outside traditional mathematics. Dijkstra was the first to observe not only that nondeterminacy is central in computations whose components interact asynchronously, but also that even when no asynchrony is involved, nondeterminacy is an effective tool for reasoning about programs and simplifying program design.

His other major contribution during this period was the development of “predicate transformers” as a basis for defining program semantics and as a tool for deriving programs. His ideas refined the earlier ideas of C. A. R. Hoare for an axiomatic basis of computer programming. He expounded these ideas along with nondeterminacy in A Discipline of Programming [8], which has been identified by the Science Citation Index as a “Citations Classic”.

The Burroughs years were Dijkstra’s most prolific in terms of research articles. He wrote nearly 500 documents in the EWD series, most of them technical reports, for private circulation within a select group.

As a frequent visitor to the Burroughs Research Center in Austin, Texas starting in the late 1970s, Dijkstra had become familiar with the Department of Computer Science of the University of Texas at Austin. In 1984 Dijkstra accepted an appointment as the Department’s Schlumberger Centennial Chair.

During his eighteen years in Austin, Dijkstra continued as a prolific researcher. Having earlier embarked on a long-term project for “Streamlining Mathematical Arguments”, in Austin he co-authored a book on predicate calculus [9] advocating a “calculational proof style” for mathematical arguments. He continued to apply his method in a number of diverse areas: coordinate geometry, linear algebra, graph theory, designs of sequential and distributed programs, and many others.

The years in Austin saw Dijkstra at his best as a teacher and mentor for a generation of undergraduate and graduate students. From his days in the Eindhoven University of Technology he had thought deeply about how computer science should be taught, and Austin provided him the opportunity for trying out his ideas [10]. He enjoyed the experience, appreciating “... brilliant students who made it a challenge and a privilege to lecture for them” [11].  He urged universities not to shrink from the challenge of teaching radical novelties.

On the occasion of Dijkstra’s 60th birthday in 1990, the Department of Computer Sciences organized a two-day seminar in his honor. Speakers came from all over the US and Europe, and a group of computer scientists contributed research articles which were edited into a book [12].

Dijkstra retired from active teaching in November 1999. To mark the occasion and to celebrate his forty-plus years of seminal contributions to computing science, the Department of Computer Sciences organized a symposium, which took place on his 70th birthday in May 2000. The symposium was attended by a large number of prominent computer scientists as well as current and former students.

Returning to The Netherlands in February 2002, Dijkstra died in Nuenen on 6 August 2002.


Dijkstra’s Aphorisms and Epigrams

Dijkstra was famous for his wit and eloquence, such as in his remark:

The question of whether computers can think is like the question of whether submarines can swim;


or his advice to a promising researcher, who asked how to select a topic for research:

Do only what only you can do;

and his remark in his Turing Award acceptance speech:

In their capacity as a tool, computers will be but a ripple on the surface of our culture. In their capacity as intellectual challenge, they are without precedent in the cultural history of mankind.

Compiled below are a few more of Dijkstra’s other memorable epigrams.

The tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.

Brainpower is by far our scarcest resource.

Program testing can at best show the presence of errors but never their absence.

The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.

So-called natural language is wonderful for the purposes it was created for, such as to be rude in, to tell jokes in, to cheat or to make love in (and Theorists of Literary Criticism can even be content-free in it), but it is hopelessly inadequate when we have to deal unambiguously with situations of great intricacy, situations which unavoidably arise in such activities as legislation, arbitration, mathematics or programming. (foreword to Teaching and Learning Formal Methods, edited by C. N. Dean and M. G. Hinchey, Academic Press, 1996)

Computer Science is no more about computers than astronomy is about telescopes.

Being abstract is something profoundly different from being vague.

Nothing is as expensive as making mistakes.

In the practice of computing, where we have so much latitude for making a mess of it, mathematical elegance is not a dispensable luxury, but a matter of life and death.

If 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, Dijkstra would not have liked this, well that would be enough immortality for me.



Acknowledgment: This profile borrows much from the Memorial Resolution solicited by the Faculty Council of The University of Texas at Austin.

Author: Hamilton Richards



Edsger W. Dijkstra

照片
诞生。
1930年5月11日,鹿特丹,荷兰

死亡。
2002年8月6日,荷兰Nuenen。

教育经历。
鹿特丹Erasmianum中学(1948年);莱顿大学物理学本科学位(1956年);阿姆斯特丹大学计算机科学博士(1959年)。荣誉学位。贝尔法斯特女王大学、雅典经济和商业大学。

工作经验。
阿姆斯特丹数学中心计算部程序员(1952-1962);埃因霍温科技大学数学教授(1962-1973);Burroughs公司研究员(1973-1984);德克萨斯大学奥斯汀分校计算机科学系Schlumberger百年纪念讲座(1984-2000)。

荣誉和奖项。
荷兰皇家艺术与科学院院士(1971年);英国计算机学会杰出院士(1971年);AFIPS哈里-古德纪念奖(1974年);美国艺术与科学院外籍荣誉会员(1975年);IEEE计算机学会计算机先锋奖(1982年);ACM/SIGCSE计算机科学教育杰出贡献奖(1989年);ACM研究员(1994年);ACM有影响力论文奖。"Self-stabilizing systems in spite of distributed control" Communications of the ACM 17, Vol. 11 (1974), pp.643-644, 2002(2003年这个年度奖改名为Dijkstra奖)。

EDSGER WYBE DIJKSTRA DL作者简介链接
荷兰 - 1972年
奖状
对编程的基本贡献,认为它是一种高难度的智力挑战;雄辩地坚持并实际证明了程序应该正确组成,而不仅仅是调试到正确;对程序设计基础问题的认识具有启发性。

简短注释
书目
亚马逊图灵奖
讲座
研究
主题
额外的
材料
Edsger W. Dijkstra于1930年出生在荷兰鹿特丹。他的父亲是一名高中化学教师,曾担任荷兰化学协会的主席。他的母亲从未担任过正式工作,对他的数学方法和对优雅的强调有着持久的影响。

1948年高中毕业,打算成为一名理论物理学家,Dijkstra认为使用电子计算机的能力可能是有利的。在阿姆斯特丹数学中心的三年编程经历使他确信,编程的智力挑战超过了理论物理学,但哪里有健全的知识体系可以支持编程成为一门智力上值得尊敬的学科呢?他的老板A. van Wijngaarden说服他,在未来的几年里,他可以成为使编程成为一门值得尊敬的学科的人之一。迪克斯特拉以最快的速度完成了他的物理学研究,他放弃了物理学而选择了编程。

在数学中心,一个主要项目是建立ARMAC计算机。在1956年的正式启用仪式上,Dijkstra设计了一个程序来解决一个对非技术观众来说很有趣的问题。给定一个连接城市的道路网络,两个指定城市之间最短的路线是什么?最著名的算法的运行时间随着网络规模的立方而增长;Dijkstra的算法的运行时间只随着平方而增长。当Dijkstra与他的未婚妻Maria (Ria) C. Debets在咖啡馆的阳台上放松时,他的最短路径算法在20分钟内开发出来,现在仍然被用于计算机通信的分组交换软件等应用中。

大约在同一时间,Dijkstra发明了另一种非常有效的网络算法,用于设计X1计算机。该算法被称为最小生成树算法,它能找到连接布线板上给定的一组点所需的最短电线长度。他在1959年的一篇论文中发表了这两种网络算法[3]。

当Dijkstra和Maria Debets在1957年结婚时,结婚仪式要求他说明他的职业。当他说他是一个程序员时,当局反对说没有这样的职业,而结婚证书上则标明他是一个理论物理学家。

在数学中心时,Dijkstra研究了非常重要的 "实时中断 "问题,这成为他博士论文的主题[2]。 当时的几家计算机制造商都面临着同样的问题,但他们没有像Dijkstra那样以严谨的态度对待这个问题。

在数学中心,Dijkstra和J.A.Zonneveld为Algol-60开发了第一个编译器,这是一种由国际委员会设计的高级编程语言。他们的编译器于1960年8月完成,比第二个Algol-60编译器早了一年多的时间。Algol-60的伟大创新之一是明确引入递归,Dijkstra对此起到了重要作用。他可能是第一个引入 "堆栈 "概念来翻译递归程序的人,在一篇短文[4]中报告了这项开创性的工作。 在《牛津英语词典》中,计算方面的术语 "向量 "和 "堆栈 "是由Dijkstra提出的。

1962年,Dijkstra被任命为埃因霍温科技大学的数学教授。在那里,他建立了THE操作系统(以大学命名,当时称为Technische Hogeschool te Eindhoven),该系统影响了许多后续操作系统的设计。它引入了一些设计原则,这些原则已经成为每个专业程序员工作词汇的一部分。在《ACM通讯》25周年纪念刊上,主编在介绍Dijkstra关于THE操作系统的文章时写道:"这个项目开启了多级系统架构的长线研究--这条路线一直延续到今天,因为分层模块化是组织大型系统的强大方法。"


1968年,Dijkstra在《ACM通讯》上发表了一封致编辑的简短信件,题为 "Go To语句被认为是有害的"[5],认为许多高级编程语言中的GO TO语句是错误的主要来源,因此应该被取消。随之而来的是计算机界的巨大骚动,战斗人员在这个问题上采取了各种立场。这场争论早已平息;现在的编程语言提供了GO TO的替代品。今天很少有程序员随意使用它,大多数人根本就没有使用它。


大约在这个时候,Dijkstra开始提出他的一些关于编程作为一门数学学科的早期想法。他指出,软件的生产力和可靠性与设计的严谨性密切相关,这可以在早期阶段消除软件的缺陷。当他参加了著名的1968年北约软件工程会议时,他对所谓的 "软件危机 "的严重性印象特别深刻,这是第一次专门讨论迟交、超预算和充满缺陷的软件日益流行的会议。他确信编程方法论应该成为一门科学学科,决定研究如何避免软件设计中的复杂性。


Dijkstra的 "结构化编程笔记 "向一些朋友传阅,征求他们的意见,很快就引起了轰动,一些大公司根据他的想法启动了一些项目,将严格的做法纳入他们的编程项目。随后出版的[1],在近40年后仍在印刷,这项工作对计算机科学的所有领域产生了深远的影响,从最初的编程课程的教学到复杂软件的设计。对程序设计和规范的数学分析已经成为计算机科学研究中的核心活动。


Dijkstra在1972年ACM图灵奖的接受演讲中,以 "卑微的程序员 "为题[6],包含了大量对编程作为一门学科的演变的观察和对其继续发展的处方。它是任何有抱负的计算机科学家的必读书。

1973年8月,Dijkstra加入Burroughs公司,成为一名研究员。他的职责包括每年在公司的一些研究中心提供咨询,并从事自己的研究。他在这一时期的重要贡献包括发展了非确定性理论[7],这是一个在传统数学之外的概念。迪克斯特拉不仅是第一个观察到非确定性在组件异步交互的计算中是核心,而且还观察到即使不涉及异步,非确定性也是推理程序和简化程序设计的一个有效工具。

他在这一时期的另一个主要贡献是开发了 "谓词变换器",作为定义程序语义的基础和衍生程序的工具。他的想法完善了C.A.R.Hoare关于计算机编程的公理基础的早期想法。他在《程序设计学科》[8]中阐述了这些观点和非确定性,该书被科学引文索引确定为 "引文经典"。

就研究文章而言,Burroughs时代是Dijkstra最多产的时期。他在EWD系列中写了近500份文件,其中大部分是技术报告,在一个特定的团体中私人传阅。

从20世纪70年代末开始,作为德克萨斯州奥斯汀的Burroughs研究中心的常客,Dijkstra已经熟悉了德克萨斯大学奥斯汀分校的计算机科学系。1984年,Dijkstra接受任命,担任该系的Schlumberger Centennial Chair。

在奥斯汀的18年里,Dijkstra继续作为一个多产的研究者。早前,他曾着手进行一个 "简化数学论证 "的长期项目,在奥斯汀,他与人合著了一本关于谓词微积分的书[9],提倡数学论证的 "计算性证明风格"。他继续将他的方法应用于许多不同的领域:坐标几何、线性代数、图论、顺序和分布式程序的设计,以及其他许多领域。

在奥斯汀的那些年,Dijkstra作为一代本科生和研究生的老师和导师,发挥了他最好的作用。从他在埃因霍温科技大学的日子开始,他就深入思考应该如何教授计算机科学,而奥斯汀为他提供了尝试他的想法的机会[10]。他很享受这种经历,赞赏"......聪明的学生,他们把为他们讲课当作一种挑战和荣幸"[11]。 他敦促大学不要对教授激进的新事物的挑战退缩。

在1990年Dijkstra的60岁生日之际,计算机科学系为他举办了为期两天的研讨会。演讲者来自美国和欧洲各地,一群计算机科学家贡献了一些研究文章,并被编辑成书[12]。

Dijkstra于1999年11月从积极的教学中退休。为了纪念这一时刻,并庆祝他四十多年来对计算科学的开创性贡献,计算机科学系组织了一次研讨会,在2000年5月他70岁生日时举行。许多杰出的计算机科学家以及现任和前任学生参加了这次研讨会。

2002年2月回到荷兰,Dijkstra于2002年8月6日在Nuenen去世。


迪克斯特拉的箴言和警句

Dijkstra以他的机智和雄辩而闻名,例如他的言论。

计算机是否能思考的问题就像潜艇是否能游泳的问题。


或者他对一个有前途的研究者的建议,他问如何选择研究的主题。

只做只有你能做的事。

以及他在图灵奖获奖演说中的一句话。

就其作为工具的能力而言,计算机将只是我们文化表面的一个涟漪。就其作为智力挑战的能力而言,它们在人类文化史上是前所未有的。

下面是Dijkstra的其他一些令人难忘的警句。

我们使用的工具对我们的思维习惯有深刻而狡猾的影响,因此也对我们的思维能力有影响。

到目前为止,脑力是我们最稀缺的资源。

程序测试充其量只能显示错误的存在,而不能显示错误的不存在。

有能力的程序员充分意识到他自己的头骨大小是严格有限的;因此他以完全谦逊的态度对待编程任务,除此之外,他还像躲避瘟疫一样躲避聪明的技巧。

所谓的自然语言对于它被创造出来的目的来说是非常好的,比如说用它来粗鲁,用它来讲笑话,用它来欺骗或做爱(文学批评理论家甚至可以用它来表达内容),但是当我们必须明确地处理非常复杂的情况时,它就无可救药地不够了,这些情况在立法、仲裁、数学或编程等活动中不可避免地出现。(C. N. Dean和M. G. Hinchey编辑的《形式化方法的教与学》前言,学术出版社,1996年)

计算机科学与计算机的关系不比天文学与望远镜的关系更密切。

抽象与模糊是有很大区别的。

没有什么比犯错误更昂贵的了。

在计算的实践中,我们有如此大的自由度来制造混乱,数学的优雅不是一种可有可无的奢侈品,而是一个生死攸关的问题。

如果10年后,当你在做一些快速而肮脏的事情时,你突然想象到我正在看着你的肩膀,并对自己说,Dijkstra不会喜欢这样,那么这对我来说就足够不朽了。



鸣谢。本简介在很大程度上借用了德克萨斯大学奥斯汀分校教师委员会征求的纪念决议。

作者。汉密尔顿-理查兹




欢迎光临 ECO中文网 (http://47.242.131.150/) Powered by Discuz! X3.3