“任性”的C语言之父拥有百万追随者,因拒付论文装订费错失博士

克尼汉说:“牛顿说他是站在巨人的肩膀上,如今,我们都站在里奇的肩膀上。”


他是C语言之父、1983年图灵奖得主,还是Unix的关键开发者。但是,他却因为“任性”而导致没有拿到哈佛博士学位,导致当年的博士论文被“雪藏”52年,到现在才终于重见天日。


近日,里奇的家人向美国计算机历史博物馆(CHM)捐赠了他的一些遗物,其中最重要的便是里奇的消失52年的博士论文影印件,这也是半个世纪以来这篇论文首次公开。


这篇名为《Program Structure and Computational Complexity》的论文写于 1968 年,当时的里奇才 27 岁。而这篇论文公开时,他早已离我们远去,论文的纸张也已经褪色发黄......

Dennis Ritchie的论文手稿


由于缺少公开副本,在过去的半个世纪里,只有不到十几个人读过这篇论文。为什么会出现这种状况呢?


因为“任性”的里奇打死不交哈佛博士学位论文的装订费!


其实,里奇提交给论文评审委员会的论文已经通过考核,并且他还手打了一份准备提交给图书馆,但图书馆却告诉他论文需要装订成册再提交。

当时哈佛有一项规定:要想获得博士学位就得向学校图书馆提交一份装订好的论文,然后图书馆才会给你一份用来获得博士学位的证明。


在上世纪70年代,装订费并不是一笔小数目,虽然里奇也不至于没法支付这笔钱,但里奇认为:“如果哈佛图书馆想要一本装订好的论文,那他们应该自己掏钱,我是不会掏的!”很显然,他的确这么做了,也因此没拿到博士学位。


虽然这篇论文被“雪藏”了半个世纪,但时隔多年,这篇论文可以从另一个角度带我们一窥计算机科学发展的早期情况,了解了当年的里奇所面临的重重挑战......


01


1941年,丹尼斯 · 里奇出生在美国的纽约布朗克斯区,由于他的父亲是贝尔实验室的交换系统工程师,在父亲的影响下,里奇从小成绩优异,大学顺利进入了哈佛,并且也走上了科学研究之路。


在哈佛读书期间,一次偶然的机会改变了里奇的一生。里奇参加了哈佛计算机系统相关的讲座,从此他开始对计算机疯狂着迷,不仅专门学了一期课程。


“我在哈佛大学读本科并进一步深造,我的本科专业是物理学,研究生专业是应用数学…… 我的博士论文(1968 年)关于函数的子递归层次(subrecursive hierarchies)。


本科阶段的学习让我明白,以自己的才智还不足以成为一名物理学者,而往计算机方向发展似乎相当不错。研究生阶段的经历又让我清醒,自己的才智也不足以让我成为算法理论方面的专家。我自己更喜欢过程式语言,而不是函数式语言。”


上世纪 60 年代末,里奇从哈佛大学应用数学系毕业,并“子承父业”加入贝尔实验室。在那里,里奇度过了他的整个职业生涯。

刚进入贝尔实验室的时候,Dennis Ritchie(右)和他的父亲 Alistair Ritchie(左)以及电子开关先驱 William Keister(中)一起工作。


02


在加入贝尔实验室后,里奇开始和实验室的一位名为Ken Thompson(肯·汤普森)的成员合作。后来,Ken Thompson成为了对Ritchie 职业生涯影响最大的人。


Ken Thompson 和 Dennis Ritchie


里奇加入贝尔实验室后,发展了C语言和Unix系统,这在电脑工业史上都占据重要的席位。而且C语言在发展软件和操作系统时是一个非常常用的电脑语言,不仅如此,C语言对现在的编程语言比如C++、C#、Obijective-C、Java和JavaScript都产生了极大的影响。


“我觉得Linux发展的现象令人高兴,虽然工作站和大型计算机厂商也在提供不同种类的BSD系统,但是在Unix的直接派生品中,Linux应该是最健全的了。”


C++的开发者和设计师比雅尼 · 斯特劳斯普曾说:“假如里奇决定那十年将他的精力花费在稀奇古怪的数学上,那么Unix将胎死腹中。”

Univac I


在1973年,里奇就开始以B语言为基础发展出C语言,在它的主体设计完成后,他和汤普森就用它来完全重写了Unix。Unix最开始是用汇编语言编写的,里奇和汤普森重写了之后于1974年在ACM上发表,正式向外界披露Unix系统。


随着Unix的发展,C语言也得到了不断地完善。C语言是一门面向过程的、抽象化的编程语言,广泛应用于底层开发。C语言能用简易的方式编译、处理低级存储器。如此简单,简洁,几乎每个计算机制造商都转向了它,且效果显著。


为了利于C语言的全面推广,很多专家学者和硬件产商联合组成了C语言标准委员会。于是在1989年,第一个完备的C标准诞生了,简称“C89”,截至目前,最新的C语言标准为2017年发布的“C17”。


尽管C语言已经如日朝天,但里奇的职业生涯并没没有因此而结束,他于1990年成为朗讯科技计算技术研究部门的领导者。在该职位上,他编写了应用程序并管理已发布的操作系统的增长。


1983年,因为发展了通用操作系统理论并实现了UNIX操作系统,里奇和汤普森二人一起获得了图灵奖。里奇的图灵奖论文题目为《对软件研究的反思》。


1990年,二人因“创造UNIX操作系统和C程序设计语言”而获得了IEEE颁发的IEEE汉明奖,1997年获计算机历史博物馆研究员奖,2005年,美国工业研究院授予里奇 IRI成就奖,以表彰他对计算机科学技术做出的贡献,以及UNIX操作系统对社会的广泛影响。2011年,里奇和汤普森二人共同获得了日本国际奖。


但在2011年10月12日,里奇离开了这个世界,离开了他付出一生的C语言和Unix世界,享年70岁,去往另一个地方开始了他的另一场旅行……


里奇虽然永远离开了我们,但他创造的C 语言却是我们永恒的财富,在未来,无数莘莘学子会在他的肩膀上为编程创造无限可能!

参考文献:

1、CHM报道:https://computerhistory.org/blog/discovering-dennis-ritchies-lost-dissertation/

2、里奇维基百科:https://en.wikipedia.org/wiki/Dennis_Ritchie


04


为C语言做贡献的,不仅仅只有像里奇这样的传奇人物,在我们的生活中,也有许多无私奉献的优秀老师默默帮着着那些有着编程梦想的人!


这场由上海交大和北师大两位名师精心准备的,针对《C Primer Plus(第6版)中文版》开展的一场大型学习C语言的CPP训练营活动,将在今晚7点,正式开营!



C Primer Plus(第6版)中文版

作者: 【美】Stephen Prata(史蒂芬 普拉达)

译者: 姜佑


内容简介:

本书在上一版本的基础上进行了全面更新,全面讲述了C语言编程的相关概念和知识,并且涵盖了C编程语言最近的变动发展、以及C11标准。本书可作为C语言的教材,适用于需要系统学习C语言的初学者,也适用于巩固C语言知识或希望进一步提高编程技术的程序员。


C Primer Plus(第6版)中文版

作者: 【美】Stephen Prata(史蒂芬 普拉达)


内容简介:

本书是畅销书《C Primer Plus(第6版)中文版》的配套习题答案,针对书中的复习题和编程练习,给出了解题思路和答案。本书共分为17章,每一章的主题与《C Primer Plus(第6版)中文版》完全一致。


每章开篇采用思维导图的方式列出本章的知识点,然后对每章的重点内容进行了梳理总结,最后则对每章中的复习题和编程练习进行了分析并给出了解答思路,确保读者在彻底夯实理论知识的同时,进一步提升实际编程能力。


作为《C Primer Plus(第6版)中文版》的配套参考书,本书特别适合需要系统学习C语言的初学者阅读,也适合打算巩固C语言知识或者希望进一步提高编程技术的程序员阅读。


举报
评论 0