艾兹赫尔·韦伯·戴克斯特拉(Edsger Wybe Dijkstra,发音:DYKE-strə;荷兰语:[ˈɛtsxər ˈʋibə ˈdɛikstraː];1930年5月11日-2002年8月6日)是一位荷兰计算机科学家、程序员、数学家及科学散文家。他因在算法、编程语言以及软件工程学科方面的奠基性贡献而广受认可。他的工作塑造了现代计算的理论与实践基础,影响范围从操作系统延伸至分布式系统。
戴克斯特拉的职业生涯跨越数十年,涉及多个机构,期间他创作了大量著作,其中包括近500篇以“EWD”系列著称的技术报告。他因对结构化编程语言发展的根本性贡献而荣获1972年ACM图灵奖,其遗产还包括以他名字命名的年度分布式计算领域奖项,,戴克斯特拉奖。
早年生活与教育
戴克斯特拉出生于荷兰鹿特丹,父亲是化学家兼教育家道韦·韦伯·戴克斯特拉(Douwe Wybe Dijkstra),母亲是数学家布雷赫特·科内利亚·克勒伊弗(Brechtje Cornelia Kluijver)。1948年从伊拉斯谟中学毕业后,他先后学习了数学和物理学,随后在莱顿大学攻读理论物理学。1950年代初,他遇到了阿德里安·范·韦恩加登(Adriaan van Wijngaarden),后者邀请他成为荷兰首位程序员,在阿姆斯特丹数学中心工作,始于1952年3月。这次偶然进入计算领域的经历成为他人生的转折点,戴克斯特拉后来回忆道,与范·韦恩加登的一次关键对话使他确信,编程是一门值得尊敬的学科。
1957年,当他与玛丽亚·“里亚”·C·德贝茨(Maria "Ria" C. Debets)结婚时,他在职业一栏填写了“程序员”,而当时这一职业在荷兰尚未被官方认可。1959年,他凭借关于自动计算机通信的论文获得莱顿大学博士学位,该论文描述了为Electrologica X1计算机设计的汇编语言。
数学中心与早期贡献
从1952年到1962年,戴克斯特拉在阿姆斯特丹数学中心工作,与硬件设计师布拉姆·扬·洛普斯特拉(Bram Jan Loopstra)和卡雷尔·S·肖尔滕(Carel S. Scholten)合作。他们秉持严谨的方法,在硬件构建之前就编写了编程手册,强调清晰的文档和谨慎的设计以避免调试。1956年,他为ARMAC计算机的启用仪式提出并解决了最短路径问题,但直到1959年才因缺乏合适的期刊而发表该成果。1960年,他与同事雅普·佐内费尔德(Jaap Zonneveld)共同开发了ALGOL 60语言的第一个编译器,这是结构化编程领域的一项关键进展。
埃因霍温与THE系统
1962年,戴克斯特拉移居埃因霍温,成为埃因霍温理工大学数学系教授。1960年代末,他构建了THE多道程序系统,该系统通过基于软件的页式虚拟内存影响了后续系统的设计。这项工作体现了他对并发性和系统设计的关注,为后来的分布式计算奠定了基础。他还在编程语言领域做出了贡献,倡导结构化编程并反对goto语句的使用,这成为软件工程的重要基石。
伯勒斯公司与EWD系列
1973年8月,戴克斯特拉加入伯勒斯公司(Burroughs Corporation),担任唯一的研究员,这一职位使他得以专注于研究。在此期间,他撰写了近500篇“EWD”系列文档,其中大部分是供私人传阅的技术报告。这些文档涵盖从算法到编程哲学的广泛主题,许多后来被数字化保存。他在伯勒斯的工作成果丰硕,一直持续到1984年。
晚年与遗产
1984年,戴克斯特拉接受了德克萨斯大学奥斯汀分校计算机科学系的施伦伯格讲席教授职位,并在那里工作至1999年退休。随后他返回荷兰尼厄嫩,2002年8月6日因癌症去世。在他去世前不久,他因自稳定计算方面的开创性工作获得了ACM PODC有影响力论文奖,该奖项随后更名为戴克斯特拉奖以纪念他。他的贡献持续影响着人工智能、机器学习、神经网络等领域,其中算法效率与正确性始终是核心关注点。