国际计算机协会(ACM,Association for Computing Machinery )宣布,将 2020 年 ACM A.M. 图灵奖授予哥伦比亚大学计算机科学名誉教授 Alfred Vaino Aho 和斯坦福大学计算机科学名誉教授 Jeffrey David Ullman;以表彰他们在编程语言实现领域基础算法和理论方面的成就;以及其所编撰的书籍对几代计算机科学家所造成的积极影响。

左 Alfred Vaino Aho,右 Jeffrey David Ullman )

公告内容指出,计算机软件可以说是现代人类社会与科技进行交互的一个驱动器。实际上,我们世界上运行的每一个程序(从手机或汽车上的程序到大型网络公司内部巨大的服务器农场上运行的程序)都是由人类用高级编程语言编写的;然后再编译成低级代码来执行。而用于现代编程语言的这种编译的许多技术则都源自于 Aho 和 Ullman。

Aho 是哥伦比亚大学的荣誉教授,于 1995 年加入哥伦比亚大学的计算机科学系。在加入哥伦比亚大学之前,Aho 曾在贝尔实验室担任计算科学研究副总裁,在该实验室工作了 30 多年。其毕业于多伦多大学,并在普林斯顿大学获得电子工程/计算机科学的硕士和博士学位。

Aho 的荣誉包括 IEEE 冯诺伊曼奖章(John von Neumann Medal)和 NEC C&C 基金会 C&C 奖 。他是美国国家工程院、美国艺术与科学院和加拿大皇家学会的成员;也是 ACM、IEEE、贝尔实验室和美国科学促进会的成员。

Ullman 是斯坦福大学名誉教授,也是 Gradiance 公司的首席执行官;Gradiance 公司是一个针对各种计算机科学主题的在线学习平台。他于 1979 年加入斯坦福大学的教师队伍。在斯坦福大学之前,他曾于 1969 年至 1979 年在普林斯顿大学任教,并于 1966 年至 1969 年在贝尔实验室担任技术人员。Ullman 毕业于哥伦比亚大学,并在普林斯顿大学获得计算机科学博士学位。

Ullman 的荣誉包括获得了 IEEE 冯诺伊曼奖章奖章、NEC C&C 基金会 C&C 奖、Donald E.Knuth 奖和 ACM Karl V.Karlstrom 杰出教育家奖。他是美国国家工程院、国家科学院和美国艺术与科学院的成员,也是 ACM 的成员。

Aho 和 Ullman 的合作从 1967 年在贝尔实验室开始,且持续了几十年,他们为编程语言理论和实现以及算法设计和分析奠定了基础。通过其技术贡献和有影响力的教科书,两人为编程语言编译器领域做出了广泛而重大的贡献。ACM 称,这两人早期在算法设计和分析技术方面的联合工作,为这一时期出现的计算机科学理论核心贡献了重要的思路。

ACM 主席 Gabriele Kotsis 称:

计算机编程的实践和越来越先进的软件系统的开发几乎支撑了我们在过去 50 年中所经历的所有技术变革。虽然无数的研究人员和从业人员对这些技术做出了贡献,但 Aho 和 Ullman 的工作尤其具有影响力。他们帮助我们理解算法的理论基础,并为编译器和编程语言设计的研究和实践指明了方向。自 20 世纪 70 年代初以来,Aho 和 Ullman 一直是思想领袖,他们的工作指导了几代程序员和研究人员直至今天。

谷歌高级研究员兼谷歌 AI 高级副总裁 Jeff Dean 则表示:

Aho 和 Ullman 建立了关于算法、形式语言理论、编译器和数据库的基本概念,这些概念在今天的编程和软件环境的发展中起到了重要作用。他们还说明了这些不同的学科是如何紧密联系在一起的。Aho 和 Ullman 介绍了关键的技术概念,包括具体的算法等,这些概念一直是至关重要的。在计算机科学教育方面,他们的教科书一直是培训学生、研究人员和从业人员的黄金标准。

在 1967 年到 1969 年期间,Aho 和 Ullman 都在贝尔实验室工作,并在当时开发了用于分析和翻译编程语言的高效算法。后来,尽管在不同的机构工作,但两人还是继续保持合作了几十年,共同撰写了书籍和论文,并为算法、编程语言、编译器和软件系统引入了新技术。

Aho 和 Ullman 共同撰写了九本有广泛影响力的书(包括第一版和后续版本)。其中最著名的两本书为:《计算机算法的设计与分析》和《编译程序设计原理》。

《计算机算法的设计与分析》被认为是该领域的经典之作,是十多年来计算机科学研究中被引用最多的书籍之一。在计算机科学还是一个新兴领域的时候,它就成为了全世界算法课程的标准教材。此书除了融入了作者自己对算法的研究贡献外,还探讨了如何用随机存取存储器 (RAM) 作为基本模型,分析递归关系算法的时间和空间复杂性。RAM 模型还将不同的单个算法编成了通用的设计方法。本书介绍的 RAM 模型和一般算法设计技术现在已经成为标准计算机科学课程的一个组成部分。

《编译程序设计原理》一书将形式语言理论和语法制导翻译技术融入到编译器设计过程中。由于其封面设计,该书常被称为"龙书",它清晰地阐述了将高级编程语言转换成机器代码的各个阶段,将整个编译器构建模块化。书中还包括了作者对词法分析技术、语法分析技术和代码生成技术的算法贡献等内容。本书最新版本为《编译器:原理、技术和工具》于 2007 年出版(与 Ravi Sethi 和 Monica Lam 合著),至今仍是编译器设计的标准教科书。