丹尼斯·麦卡利斯泰尔·里奇(英语:Dennis MacAlistair Ritchie,1941年9月9日—2011年10月12日),美国计算机科学家。黑客圈子通常称他为“dmr”[4]。他是C语言的创造者、Unix操作系统的关键开发者[5][6][7][8],对计算机领域产生了深远影响,并与肯·汤普逊同为1983年图灵奖得主。
生平
丹尼斯·里奇生于美国纽约州布隆克维。他的父亲是《开关电路设计》(The Design of Switching Circuits)作者之一、贝尔实验室的资深科学家阿利斯泰尔·里奇(Alistair E. Ritchie)。在丹尼斯还小的时候,他们家就搬到了新泽西州的萨米特。他于当地的高中学业[9],之后到哈佛大学学习物理学和应用数学。大学毕业后,里奇于1967年进入贝尔实验室工作。第二年他在计算机科学家帕特里克·C·费希尔的指导下发表了博士论文《程序结构与计算复杂性》(Program Structure and Computational Complexity),但是始终没有正式获得博士学位[10]。
20世纪60年代,丹尼斯·里奇和肯·汤普逊参与了贝尔实验室Multics系统的开发。然而之后不久贝尔实验室又撤出了Multics计划,于是汤普逊找到了一台PDP-7机器,从头开始开发应用程序和操作系统。在此期间,丹尼斯·里奇和汤普逊也带领团队进行系统的开发工作。1970年,布莱恩·柯林汉建议把系统命名为“Unix”,与“Multics”名字相对[11]。在完成Unix系统开发的基本工作之后,汤普逊觉得Unix系统需要一个系统级的编程语言,便创造了B语言。后来丹尼斯·里奇则在B语言的基础上创造了C语言[12]。
70年代,里奇曾与詹姆斯·里德(James Reeds)和罗伯特·莫尔斯合作研究对M-209密码机的唯密文攻击。在早期Unix系统的crypt命令中就有部分内容来自这台机器[13]。不过,经过与美国国家安全局的讨论,他们决定不公开方法,因为公开攻击原理会影响到其他正在政府服役的机器[13]。
此外,里奇还参与了贝尔实验室九号项目、Inferno操作系统以及Limbo语言的开发,而这些项目均是基于他以前的成果进一步开发的。贝尔实验室在20世纪90年代中期重组时,他转到了朗讯科技。在朗讯,他曾领导系统软件研究部门,直到2007年退休为止[14]。
C语言与UNIX
丹尼斯·里奇为人所知,主要是因为他创造了C语言,作为关键开发者参与了Unix操作系统的开发,并且与布莱恩·柯林汉共同撰写了《C程序设计语言》——这本书所树立的标准叫做“K&R C”,其中“K”指柯林汉,而“R”指的就是里奇。开发Unix时,里奇的一个重要贡献是把Unix移植到不同的机器和平台之上[15]。在Unix领域二人非常有影响力,以至于后来开发Research Unix时道格拉斯·麦克罗伊写道“你可以安全地把丹尼斯·里奇和肯·汤普逊的名字放到几乎所有未经其他人署名的地方。”[16]
当有人问里奇是什么启发他如此设计C语言时,里奇回答说“看来是件值得做的事”("looked like a good thing to do")。他说任何人在同一地方、同一时间也会像他那样做的。但是许多人认为这只是里奇的谦言,例如里奇在贝尔实验室的同事、C++的创造者和设计师比雅尼·斯特劳斯特鲁普曾说:“假如里奇决定在那十年里将他的精力花费在稀奇古怪的数学上,那么Unix将胎死腹中”。[17]
今天C语言广泛用于各种应用程序、操作系统与嵌入式系统的开发之中,并影响了大多数现代编程语言。Unix操作系统则建立了一系列操作系统的观念和准则。
丹尼斯·里奇于1999年接受了一次采访,表示自己看到Linux和BSD操作系统正在延续Unix发展,并说:[18]
我觉得Linux发展的现象令人高兴,因为它很大程度建立在Unix的基础之上。在Unix的直接派生品中,Linux应该是最健全的了,虽然工作站和大型计算机厂商也在提供不同种类的BSD系统。
荣誉和获奖情况
1983年,因为发展了通用操作系统理论并实现了UNIX操作系统,丹尼斯·里奇和肯·汤普逊二人一起获得了图灵奖。里奇的图灵奖论文题目为《对软件研究的反思》(Reflections on Software Research)[19]。1990年,二人因“创造UNIX操作系统和C程序设计语言”而获得了IEEE颁发的IEEE汉明奖[20],1997年获计算机历史博物馆研究员奖[21],在1999年4月21日又共同获得了由美国总统比尔·克林顿颁发的美国国家技术与创新奖章[22][23]。
2005年,美国工业研究院授予丹尼斯·里奇IRI成就奖,以表彰他对计算机科学技术做出的贡献,以及UNIX操作系统对社会的广泛影响[24]。
逝世
2011年10月12日,里奇于新泽西州伯克利·海茨镇的家中去世,享年70岁[5]。去世的消息由他之前的同事罗勃·派克提供[6][7],但未指明具体的去世时间和原因[26]。此前丹尼斯·里奇的健康状况一直不佳,并且患有前列腺癌和心脏病[5][6][27][28]。
丹尼斯·里奇对计算机领域产生了深刻影响[29][30][31][32]。在里奇去世之后,计算机历史学家保罗·茨露吉评价说:[33]
里奇的名字并不容易让人察觉,也不为人熟知,但是……假如有一个能够把计算机放大的显微镜,你会看到里面到处都是他的贡献。
他的同事布莱恩·柯林汉也接受了采访,说里奇从未想过C语言能够变得如此重要[34]。他告诉《纽约时报》,“丹尼斯创造的工具——以及它们的派生品——现在正广泛用于一切事物”[35]。他还提醒读者,C语言和UNIX在之后各种著名项目的开发中发挥了非常重要的作用,例如iPhone[36][37]。
有人将丹尼斯·里奇与史蒂夫·乔布斯进行对比,试图探究二人之中谁更重要,然后得出一条结论,“在过去四十年的技术革命里,里奇起到了关键作用——包括苹果公司想要用来创造财富的技术”[38]。有人说“从另一方面讲,丹尼斯·里奇发明了两项关键的软件技术,这种技术是直接或间接组成现在每一件计算机产品的DNA。它听起来很疯狂,可事实的确如此。”[39]还有人评价道,“许多在计算机科学和相关领域的人都清楚,里奇的重要性体现在一切需要通过计算机实现的工作之中”[40]。
为纪念丹尼斯·里奇,Fedora的开发团队将Fedora 16(发布于里奇去世一个月后)献给他[41],而FreeBSD的开发团队也将FreeBSD 9.0(发布于2012年1月12日)献给他[42]。
著作
- 《C程序设计语言》:与布莱恩·柯林汉合著。该书所采用的标准称为“K&R C”。
- 《Unix Programmer's Manual》
参考资料
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.