沸腾了!影响几代人的《龙书》作者获得图灵奖!刚刚,ACM授予了“龙书”的两位作者——哥伦比亚大学教授阿尔弗雷德·阿霍(AlfredAho)和斯坦福大学教授杰弗里·大卫·乌尔曼(JeffreyDavidUllman)。为表彰他们在编程语言实现的基础算法和理论方面的成就,另外,两位教授将他们的研究成果编成教材,影响和教育了一代又一代的计算机科学家和程序员。JeffDean发推表示祝贺:“我读研究生的时候,在编译课上用过龙书,有非常愉快的回忆。”他提到的龙书是《编译器设计原理》,被该领域的学者奉为标准,艾侯和乌尔曼也有介绍。送给全球数百万软件程序员的最佳礼物。《龙书》CP:多次合着,启迪一代程序员如果没有编译器这个重要的软件开发工具,我们就会陷入机器码的世界里自言自语,然后才能控制计算机。这就是帮助开发编译器的两位研究人员Aihou和Ullman获得2020年图灵奖的原因。为现代编程语言做这种编译的技术大部分归功于Aihou和Ullman。故事始于1967年的贝尔实验室,Aihou和Ullmann在那里奠定了编程语言理论和实现以及算法设计和分析的基础。他们通过技术贡献和有影响力的教科书为编程语言编译器做出了基础性贡献。他们早期在算法设计和分析技术方面的合作也对这一时期出现的计算机科学理论核心做出了重要贡献。Aihou和Ullmann一起写了很多书,例如:TheTheoryofParsing,Translation,andCompiling:1-2,1972,1973TheDesignandAnalysisofComputerAlgorithms,1974(PrinciplesofCompilerDesign),1977DataStructuresandAlgorithms,1983.《计算机算法的设计与分析》(Compilers:Principles,Techniques,andTools)1986.FoundationsofComputerScience,1992.其中最著名的两本书:《计算机算法的设计与分析》(1974)TheDesignandAnalysisofComputerAlgorithmsis被认为是该领域的经典之作,是十多年来被引用最多的计算机科学研究书籍之一。当计算机科学还是一个新兴领域时,它已成为全世界算法课程的标准教科书。本书还介绍了随机存取机(RAM)作为使用递归关系分析计算机算法的时间和空间复杂性的基本模型。RAM模型还将不同的单独算法编码为通用设计方法。另外,龙书——《编译器设计原理》(1977)CompilerDesignPrinciplesofCompilerDesign,这本书的封面是骑士和龙,所以叫龙书,又因为龙是绿色的,所以叫“绿龙”书”。九年后的1986年,原两位作者加上RaviSethi对本书进行了升级,书名改为Compilers:Principles,TechniquesandTools。封面还是用了骑士和龙,龙变成了红色。故称“龙书二”或“红龙书”。2006年底,龙树再次升级。作者还有另一本MonicaS.Lam,名字依然是Compilers:Principles,TechniquesandTools,封面依旧保持恐龙和武士的设计,只是这次的龙是紫色的,所以叫《紫龙书》。阿尔弗雷德·阿霍阿尔弗雷德·阿霍(AlfredAho,1941)目前是哥伦比亚大学名誉教授。1995年,Aihou加入哥伦比亚大学计算机科学系,并于1995年至1997年以及2003年春季再次担任该系主任。他目前的研究重点是量子计算、编程语言、编译器和算法。艾厚教授拥有多伦多大学工程物理学士学位和博士学位。普林斯顿大学电气工程/计算机科学专业。他曾获得IEEE冯诺依曼奖,同时也是美国国家工程院和美国艺术与科学院院士,同时也是加拿大皇家科学院院士。学会会员。2017年与Ullmann和JohnHopcroft三人组共同获得“C&C奖”。他还是美国科学促进会、ACM、贝尔实验室和IEEE的会员。Aihou教授(左二)和Ullmann教授(右一)Aihou教授以其在算法和数据结构、编程语言、编译器和计算机科学基础方面的许多论文和书籍而闻名。“编程语言AWK”中的“A”代表Aho教授,另外两个字母代表另外两个开发者:“W”是PeterWeinberger,“K”是BrianKernighan。字符串模式匹配实用程序egrep和fgrep的初始版本;fgrep是现在称为Aho-Corasick算法的第一个广泛使用的实现。在加入哥伦比亚大学之前,他是贝尔实验室计算机科学研究中心的副总裁。JeffreyDavidUllmanJeffreyDavidUllman(生于1942年)是美国计算机科学家,也是斯坦福大学StanfordW.Ascherman工程学高级教授。他的编译器教科书《自动机理论、语言和计算导论》(编译器设计原理),常被称为“龙书”,计算理论书(合着)《自动机理论、语言和计算导论》(自动机理论、语言和计算导论)为人所知作为“灰姑娘之书”(Cinderellabook),还有数据结构和数据库方面的教材,被奉为行业标准。“灰姑娘之书”这本书的封面描绘了一个女孩(可能是灰姑娘)坐在RubeGoldberg的装置前,手里拿着一根绳子。而在后盖上,在她拉动绳子后,这个装置变得一团糟。Ullman于1963年获得哥伦比亚大学工程数学理学学士学位,并获得博士学位。1966年在普林斯顿大学获得电气工程学士学位。随后他在贝尔实验室工作了数年。1969年至1979年在普林斯顿大学任教。自1979年以来,他一直是斯坦福大学的教授,目前已名誉退休。1995年被选为ACMFellow;2000年荣获Gartner奖。2010年,他还与JohnHopcroft一起获得了IEEE冯诺依曼奖,以表彰他们“为自动机和语言理论领域奠定了基础,并为理论计算机科学做出了许多开创性贡献”的贡献。Herman的研究兴趣包括数据库理论、数据集成、数据挖掘和使用信息基础设施的教育。他是数据库理论领域的奠基人之一,他带领的一批博士生后来成为领先的数据库理论家。他是谷歌联合创始人谢尔盖布林的博士生导师,并在谷歌技术顾问委员会任职。他目前是Gradiance的首席执行官。他在斯坦福大学的在线学习平台上教授自动机和挖掘海量数据集的课程。In2020,UllmanwaselectedtotheNationalAcademyofSciencesandservesasanadvisortoTheOpenCodeFoundation.姚期智曾在清华大学的一次讲座《科学家与科学之路》中提到乌尔曼,说他是一个有干巴巴幽默感的人。厄尔曼曾说过:Smartpeopleareareworthly,youcanbuyadovenforadime,importantthingistohaveanimpactonothers(聪明人一毛钱一打,你要的是有影响力)。乌尔曼本人也践行了这一理念。他认为自己有一个长处,就是吸收新事物快,出书也快。计算机科学日新月异,他用心学习了很多新东西。他将在许多领域教授课程并撰写书籍。关于写书的哲学,他还有另外一句话:如果材料好,值得写也无所谓(如果值得写,也值得写坏)。在一个新的领域,第一本书会被很多人使用,会影响很多人。《编译原理》动物园在编译原理领域,三本经典书籍无可替代。除了龙书,还有虎书和鲸书,这些梗都是从封面上来的。TigerBook(ModernCompilerPrinciples-CLanguageDescription,ModernCompilerImplementationinC)作者:AndrewW.Appel,withJensPalsberg国内很多大师和博士都说TigerBook《现代编译原理-C语言描述》是最合适的,虽然与龙书内容类似,但虎书增加了数据流分析、循环优化等内容。而且,除了上图中的C版,还有java版和ML版。WhaleBook(AdvancedCompilerDesignandImplementation,AdvancedCompilerDesignandImplementation)作者:StevenS.Muchnick鲸书出版时间晚于龙书和虎书,所以作为后来者,它不仅包含了其他的内容两本书,还涉及到很多高级编译器设计和实现的内容。可以说鲸书更全面,更适合小白学习。不过,龙书封面是龙,虎书封面是虎,鲸书又是怎么得名的呢?这本书的封面取自西北海岸民间艺术收藏,是一张奇尔卡特地毯的照片。中幅描绘一头鲸鱼潜入水中。不仅如此,在编程世界里,还有很多以动物命名的书,比如O'relly系列,ButterflyBook(JavaScript:thegoodparts)(slothbook)copyingandpastingfromstackoverflow等等……其实,有很多计算机书都是从封面上衍生出来的,比如SICP叫做WizardBook;此外,来自作者,如CLRS、K&R、GoF……另外,周志华先生的《机器学习》,俗称“西瓜书”,因为其中包含大量以西瓜为例的内容。还有IanGoodfellow、YoshuaBengio、AaronCourville编辑的《深度学习》,因为封面是电脑生成的纽约中央公园,所以被称为“花书”。你学习编程多少年了?《龙书》CP获奖,你心动了吗?
