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

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

乌尔曼的研究兴趣包括数据库理论、数据集成、数据挖掘和使用信息基础结构的教育。

他是数据库理论领域的创始人之一,他带的一批博士生后来都成了领先的数据库理论家。

他是谷歌联合创始人谢尔盖·布林的博士生导师,并曾在谷歌的技术顾问委员会任职。

他目前是Gradiance的首席执行官。他在斯坦福大学在线学习平台上教授有关自动机和挖掘海量数据集的课程。

2020年,乌尔曼被选为美国国家科学院院士,同时还是The Open Code基金会的顾问。

姚期智曾经在清华的一次讲座《科学家与科学之路》中曾经提到乌尔曼,说他是一个有冷幽默的人。

16.jpg

乌尔曼曾说:聪明人不值钱,一毛钱可以买一打,重要的是能对他人有影响(Smart people are dime a dozen,what you want is to have impact)

乌尔曼本身也实践这个哲学,他自认有一个长处,对于新东西吸收很快,写书也很快。计算机科学日新月异,他对很多新的事情都用心学,很多领域他都会开门课,写本书。

他还有另外一句话,关于写书的哲学:如果材料好,写得差一点也不要紧(If it is worth writing,it is worth writing bad)。在一个新的领域里,第一本书会有很多人用,会影响很多人。

「编译原理」动物园

在在编译原理界,三本经典书籍无可替代。

除了龙书,还有虎书、鲸书,而这些梗都是从封面而来。

虎书(现代编译原理-C语言描述 ,Modern Compiler Implementation in C)

作者:Andrew W.Appel,with Jens Palsberg

17.jpg

很多国内的硕博士都说,其实虎书《现代编译原理-C语言描述》才是最合适的那个,虽然与龙书的内容类似,但虎书增加了数据流分析、循环优化等内容。而且,除了上图的C版,还有java版和ML版。

鲸书(高级编译器设计与实现 ,Advanced Compiler Design and Implementation)
作者:Steven S.Muchnick

18.jpg

鲸书出版时间比龙书和虎书都晚,所以作为后来居上者,它不仅囊括另两本书的内容,还涉及了许多高级的编译器设计与实现内容。可以说,鲸书更加全面,也更适合小白学习。

但是,龙书的封面有条龙,虎书的封面有头虎吗,那鲸书又如何得其名呢?

本书封面是从西北海岸民间艺术收藏中选取的,这是一张奇尔卡特毛毯的照片。中间的一块描绘了一条在水中潜游的鲸鱼。

不仅如此,在编程界,还有很多书是用动物来称呼的,例如O'relly系列,

19.jpg

蝴蝶书(JavaScript: the good parts)

20.jpg

(树懒书)copying and pasting from stack overflow

等等……

实际上,还有很多从封面来的计算机书梗,比如 SICP 就叫 Wizard Book;另外,来自作者的,比如 CLRS、K&R、GoF……

另外,周志华老师的《机器学习》俗称「西瓜书」,因为里面有大量用西瓜举例的内容。

21.jpg

还有IanGoodfellow、YoshuaBengio、AaronCourville 编著的《深度学习》,因封面是一张计算机生成的纽约中央公园而被称为「花书」

22.jpg

你是几0后编程学习者?「龙书」CP获奖,你感动吗?

相关文章
【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改
【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改
|
Python Windows
【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )(一)
【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )(一)
2328 0
【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )(一)
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
安全 C# 开发者
C# 一分钟浅谈:文件操作与文件流详解
【9月更文挑战第4天】在日常开发中,文件的读写是基本而重要的任务。C# 通过 `System.IO` 命名空间提供了多种工具,如 `FileStream`、`StreamReader` 和 `StreamWriter` 等,用于处理文件和流。本文从基础概念入手,详细介绍了这些类的使用方法,并讨论了常见错误及其避免策略,包括文件不存在、权限问题和文件被占用等。通过示例代码,展示了如何创建、读取文件以及进行二进制数据操作,并强调了异常处理和性能优化的重要性。掌握这些技巧对于提升编程能力至关重要。
459 2
|
存储 Kubernetes Docker
在K8S中,与K8S相关基础概念有哪些?
在K8S中,与K8S相关基础概念有哪些?
|
SQL Oracle 关系型数据库
一文入门Dataphin实时集成
Dataphin实时集成的读取和写入原理是什么?Dataphin实时集成和实时研发的区别是什么?Dataphin实时集成有哪些优势?本文一次讲清
552 1
|
传感器 供应链 物联网
ERP系统与物联网(IoT)集成:实现智能化业务管理
【7月更文挑战第29天】 ERP系统与物联网(IoT)集成:实现智能化业务管理
1182 0
|
存储 自然语言处理 开发者
【技术解析 | 实践】Havenask文本索引
本次分享内容为Havenask的文本索引,本次课程主要分为两部分内容,首先简要介绍倒排索引的数据结构和文本索引的特性,然后进行对文本索引配置不同分析器的实践,希望通过分享帮助大家更好了解和使用Havenask。
42037 3
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。