哭了!2020图灵奖颁给编程的回忆——Jeff Dean 的编译启蒙书(中)

简介: 刚刚,2020年图灵奖揭晓!影响了数代人的「龙书」作者——阿尔佛雷德·艾侯 (Alfred Aho)和杰弗里·戴维·乌尔曼(Jeffrey David Ullman)获奖。

2017年,他与乌尔曼和约翰·霍普克洛夫特三人一起获得了「C&C奖」。他还是美国科学促进会、ACM、贝尔实验室和IEEE的研究员。

9.jpg

左二为艾侯教授,右一为乌尔曼教授

艾侯教授因其关于算法和数据结构、编程语言、编译器以及计算机科学基础的许多论文和书籍而闻名。

10.jpg

「编程语言AWK」中的「A」就代表艾侯教授Aho,另两个字母代表另外两名开发者:「W」是 Peter Weinberger,「K」是Brian Kernighan.

11.jpg

他还编写了作为 UNIX 一部分的字符串模式匹配实用程序 egrep 和 fgrep 的初始版本; fgrep 是现在被称为 Aho-Corasick 算法的第一个广泛使用的实现。

加入哥伦比亚大学之前,他是贝尔实验室计算机科学研究中心的VP。

杰弗里·乌尔曼

杰弗里·戴维·乌尔曼(Jeffrey David Ullman)(1942年生)是美国计算机科学家,也是斯坦福大学Stanford W. Ascherman工程学老教授。

12.jpg

他所著的关于编译器的教材《编译器设计原理》(Principles of Compiler Design),通常被称为「龙书」,计算理论的书(与他人合著)《自动机理论、语言和计算导论》(Introduction to Automata Theory, Languages, and Computation)被称为「灰姑娘书」(Cinderella book),另外还有数据结构和数据库的教材,这些书都被视为所在专业的标准。

13.jpg

「灰姑娘书」本书的封面描绘了一个女孩(可能是灰姑娘)坐在一个鲁布·戈德堡装置前 手里拿着一根从里面出来的绳子。而封底,在她拉动绳子后,这个装置变得一片狼藉。

乌尔曼于1963年从哥伦比亚大学获得工程数学理学学士学位,1966年获得普林斯顿电气工程专业博士学位。

14.jpg

此后,他在贝尔实验室工作了好几年。1969年到1979年期间,他在普林斯顿大学任教。自1979年以来,他一直是斯坦福大学的教授,目前已经荣退。

1995年,他被选为ACM Fellow;2000年,他被授予高德纳奖。2010年,他还与John Hopcroft一起获得了IEEE冯·诺依曼奖,他们的贡献「为自动机和语言理论领域奠定了基础,并为理论计算机科学做出了许多开创性的贡献。」

15.jpg

相关文章
|
存储 缓存 算法
哈希函数:保护数据完整性的关键
哈希函数:保护数据完整性的关键
|
SQL 数据库
PowerDesigner导出SQL脚本运行注释出现乱码问题
PowerDesigner导出SQL脚本运行注释出现乱码问题
481 0
|
存储 消息中间件 监控
阿里云sls日志服务简介和使用流程
阿里云SLS(Simple Log Service)是一种高度可扩展的、低成本的日志托管服务,它提供了全面的日志采集、存储、分析和呈现功能。阿里云SLS是全球首个在公共云上提供日志服务的企业,它具有高可靠性、高稳定性和高安全性等特点,可满足不同企业的日志需求。
|
Oracle JavaScript 关系型数据库
MySQL8 OCP可以个人报名了,内卷时代考个证提升自己
MySQL8 OCP可以个人报名了,内卷时代考个证提升自己
2879 0
MySQL8 OCP可以个人报名了,内卷时代考个证提升自己
|
计算机视觉
5.1.2.3 目标检测基本概念和YOLOv3设计思想——交并比 NMS
这篇文章详细解释了目标检测中的关键概念交并比(IoU)和非极大值抑制(NMS),包括它们的定义、计算方法和在目标检测中的应用,以及如何使用这些技术来优化预测结果和减少冗余预测框。
9、Mybatis-Plus 乐观锁
这篇文章介绍了Mybatis-Plus中乐观锁的实现和使用流程,包括使用场景、在实体类中添加版本号字段、配置乐观锁插件以及通过测试验证乐观锁的效果,确保在并发环境下数据的一致性。
9、Mybatis-Plus 乐观锁
|
数据库
分布式事务的四大特性和隔离级别
分布式事务是指在分布式系统中执行的涉及多个数据库或资源的事务。由于分布式环境中存在网络故障、节点故障等不可靠因素,因此需要采取一定的机制来保证分布式事务的一致性和可靠性。
765 0
|
12月前
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
12852 1
【开发IDE升级】如何对IDEA版本进行升级
|
NoSQL Ubuntu Java
如何在 Ubuntu 14.04 上安装 Graylog2 并实现日志集中管理
如何在 Ubuntu 14.04 上安装 Graylog2 并实现日志集中管理
246 1
|
存储 算法 编译器
课程设计——基于FPGA的交通红绿灯控制系统(源代码)
课程设计——基于FPGA的交通红绿灯控制系统(源代码)