`
nigelzeng
  • 浏览: 607527 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】丹尼斯·里奇,那个给乔布斯提供肩膀的巨人

阅读更多

 

丹尼斯·里奇,那个给乔布斯提供肩膀的巨人

唯一 发表于2011-10-14 16:54:11

Unix和 C 语言的发明人,图灵奖获得者,丹尼斯·里奇先生,于2011年10月8日在位于美国新泽西州的家中病逝。可以说,几乎所有的网络产品都是基于丹尼斯先生的成就诞生的,我们都站在他的肩膀上。谨以此文缅怀里奇先生。



 
C语言之父丹尼斯·里奇先生于2011年10月8日在位于美国新泽西州的家中病逝。这一新闻在广大计算机的爱好者和研究人员中引起巨大反响,然而诸多悼词和追忆的描述却不够准确。在此,我们借本文回顾里奇先生一生的巨大贡献,愿世人缅怀,愿先生安息。

里奇先生被誉为C语言之父,他不但和肯·汤普森(Ken Thompson)一起创造了C语言。他还开发出了UNIX操作系统,我们如今使用的很多操作系统都是建构在UNIX内核之上,包括苹果帝国的所有产品。

回忆一周之前,乔布斯去世时,网络上铺天盖地诸多赞誉与哀思,其产品风靡所带来的全球性用户崇拜史无前例。其实,里奇先生更应享受这些赞誉,甚至更多。

罗伯是里奇的同事,二人在贝尔实验室共事20年,正是他在第一时间于Google+上发表这则新闻。罗伯说:

当乔布斯去世时,享受到了声势浩大的追思。相形之下,里奇先生对当代科技进程做出了更大的贡献,可公众甚至不知道他是谁,这十分不公平。

网络已经成为当代生活不可或缺的一部分。然而,缺少了里奇所创造的 C 语言和 UNIX ,网络和任何网络产品都不可能存在。比如,浏览器是用 C 语言写的,网络服务器是C语言写的,很多人反驳说他们所使用的是 JAVA 或者 C++,但它们也是 C 语言的衍生物。包括网页架构时的 Python 和 Ruby 两种程序语言,也是基于 C 语言的。除此而外,所有的网络硬件产品都是 C 语言所编写的,而 UNIX 是整个因特网所运行的基础。由此可见,我们怎样评价里奇先生的丰功伟绩,都不足为过。甚至Windows 也曾经用C 语言写过,苹果公司用于个人电脑、iPad和iPhone上的操作系统,都是基于UNIX的。

麻省理工大学计算机系的马丁教授评价说:

如果说,乔布斯是可视化产品中的国王,那么里奇就是不可见王国中的君主。乔布斯的贡献在于,他如此了解用户的需求和渴求,以至于创造出了让当代人乐不思蜀的科技产品。然而,却是里奇先生为这些产品提供了最核心的部件,人们看不到这些部件,却每天都在使用着。

从B语言到C语言



 1972年,丹尼斯·里奇和肯·汤普森在操作PDP-11迪吉多电脑

里奇开发 C 语言的初衷,是在与肯·汤普森合作研发 UNIX 系统时需要一种更好的描述性语言。

刚开始,UNIX 内核是使用汇编语言编写而成的。然而随着开发进展,数据量猛增,能够对数据进行有效整理和灵活操作的需求便应运而生。在1970年前后,他们尝试通过改进 Fortran 语言来进行数据管理和操作,却没有达到预想的目的。随即几年后,二人合作公布出了 B 语言。

关于 B 语言的名字由来,传言有两个版本。一说B是为了纪念肯恩的妻子邦妮(Bonnie),另有说法称, B 指代 BCPL,这是上世纪60年代中期由剑桥大学开发出的一种计算机语言。这两种说法孰是孰非并不重要,重要的是 B 语言的命名决定了其后的改进版本被命名为, C 语言。

B 语言是一种解释性语言,也就是说它在软件运行和 CPU 运行中起到中间层的作用。与此不同, C 语言是编译语言,它在运行之前被编译成机器语言,直接在 CPU 上运行,其运行速度非B语言所能比。

最早期的 C 语言和我们如今所使用的版本框架上并没有太大出入,但是功能简化许多。当时为了满足研发新型 UNIX 内核的需要,它主要提供了数据结构和变量类型。

里奇曾开玩笑称, C 语言拥有汇编语言的力量和汇编语言的便利性。这句话的意思是, C 语言的运行方式更接近于硬件系统。但是,里奇的这句玩笑并没有准确定位 C 语言的地位, C 语言所提供的数据结构,力发千钧,足以贯穿所有高层和底层的语言。

罗伯解释数据结构的重要性:

当你在编写一个大型程序的时候,你需要管理各个组件之间的联系,包括用户、文件、硬盘、程序执行等等。为了对这些部分进行有效的控制,首先就需要对所使用的信息和数据进行清晰有效的表达,这个表达形式就是数据结构。

正如 UNIX 的源代码清晰流畅,可读性强。如果没有一个好的数据结构作为基础,这是不可能实现的。比如,当我们需要对大量数据进行分类和整合的时候,如果使用的是 Fortran 语言,就会变得束手无策。

由于 C 语言中对于数据结构的有效准确的定义,使得其具有强大的可移植性。这种特性使得用C语言所编写出的操作系统可以用于不同的平台,这正是里奇在研发 UNIX 时最主要的初衷,也是如今新型操作系统的主流开发方法。

苹果,微软,以及其他,都是站在里奇的肩膀上

比尔是英伟达公司的首席科学家,同时也是斯坦福大学贝尔实验室的教授,他说:

C 语言的开发是科技史上不可磨灭的伟大贡献,因为这个语言把握住了计算机科技中一个至关重要的并且是恰到好处的中间点,一方面它具备搭建高层产品的能力,另一方面又能够对于底层数据进行有效控制。正是由于这种关联性和枢纽性作用,决定了 C 语言所导向的近三十年来计算机编程主流方式。

从贝尔实验室到微软,再到众人所熟知的利器, C 语言是怎样在科技打造世界的革命中成为了最强有力的武器呢?

革命风潮始发于1973年,里奇发表出第一篇关于C语言的学术性论文。5年之后,他和同事布莱恩·克尼汉撰写出里程碑式的一本书《C程序设计语言》(The C Programming Language)。克尼汉日后回忆说,为了说服里奇加入合著阵营他费尽口舌,他笑称甚至险些“扭断了里奇的胳膊”。

罗伯对于里奇的崇拜正是来源于这本书。当时,他还是多伦多大学里的一名本科生,他回忆道:“我是在病床上第一次读这本书,立马就被其清晰的描述和深入浅出的解读给吸引住了,这种语言和逻辑的清晰准确表达是日后任何教材或者参考手册都无法超越的,它堪称经典,甚至让我忘记了当时正在生病。”

通过这本书,当年如罗伯一样的很多大学生开始使用 C 语言。尤其当贝尔实验室公布出 UNIX 的源代码之后,C语言的风潮已经势不可挡。可以说, UNIX 源代码的公布不仅推进了计算机语言的发展,更决定了日后互联网时代的开源计划是应始之驱。里奇于1983年被授予图灵奖,并且于1998年获得了国家科技勋章。

罗伯介绍说,里奇是一个非常低调地科研工作者。和乔布斯力图形成垄断的个人主义截然不同,里奇一直希望自己的工作能够为更多的科研工作者所用,能够为他人日后的科研工作和科技进展提供便利。

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

这句话,应该是对丹尼斯·里奇先生的一生最有力也是最中肯的评价。


图片和信息来源: wired

本文来自果壳网

 

  • 大小: 53.1 KB
  • 大小: 99.4 KB
分享到:
评论
1 楼 liberty1789 2012-01-13  
永远纪念丹尼斯 里奇先生!

相关推荐

    C程序设计语言 丹尼斯•里奇

    C语言创始人著,C语言学习经典书籍。

    C语言(C Programming Language)是一种通用的、过程式的编程语言,由丹尼斯·里奇(Dennis Ritchi

    c语言C语言(C Programming Language)是一种通用的、过程式的编程语言,由丹尼斯·里奇(Dennis Ritchie)于1972年在贝尔实验室为开发UNIX操作系统而设计。C语言以其高效、灵活和可移植性而著称,是许多系统软件和...

    c语言程序设计

    丹尼斯里奇所著的《C语言程序设计》是一本深入浅出介绍C语言编程的经典教材。该书不仅详细讲解了C语言的基础语法,更在实践中培养读者良好的编程习惯。 在C语言的程序设计世界中,基本语法知识是构建程序的基石。...

    基于大数据应用的丹尼斯百货 .zip

    这份资料可能包含丹尼斯百货如何利用大数据进行数据分析、数据挖掘、预测模型建立等实际操作的案例,旨在提供对大数据在零售业应用的深入理解和实践指导。 【压缩包子文件的文件名称列表】: "基于大数据应用的...

    C程序设计语言(完美中文版)

    它于1972年由贝尔实验室的丹尼斯·里奇开发,最初是为了编写UNIX操作系统。自那以后,C语言已经成为计算机科学中最基础的语言之一,被广泛应用于系统软件开发、嵌入式系统、游戏开发等多个领域。 #### 3. 基本概念 ...

    丹尼斯商店管理系统+实训报告.zip

    《丹尼斯商店管理系统+实训报告》是一个以Java编程语言实现的商店信息管理系统,它涵盖了多个核心功能模块,旨在提供全面的商店运营支持。系统的主要特点包括登录管理、VIP信息管理、人事管理以及辅助功能,为商店的...

    郑州丹尼斯-二七商业广场工程多塔作业施工方案.doc

    在郑州市核心商业区,一座综合性商业广场的崛起,预示着郑州丹尼斯-二七商业广场工程的宏伟蓝图正在变为现实。作为河南省郑州市的一项标志性建设项目,该工程的建设涉及到多塔起重机同时作业的复杂施工情况。为确保...

    C 简介

    C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。 在 1978 年,布莱恩·柯林汉(Brian Kernighan)和...

    C程序设计语言 电子书 pdf格式

    C语言作为一种功能强大的编程语言,它给予程序员非常接近硬件操作的能力,同时也提供了丰富的库函数。这使得C语言非常适合于开发操作系统、嵌入式系统、系统软件等需要精细控制硬件资源的应用。学习C语言不仅可以...

    丹尼斯层级考试不定项考试范围处级和课级.doc

    文档中的内容主要涉及丹尼斯公司在管理层级考试中的多项选择题,涵盖了公司的经营策略、经营思想、员工管理政策、人事异动规定、薪资福利、员工考核、教育培训、员工模范评选、新员工关怀以及奖惩制度等多个方面。...

    指针转换艺术:C语言中类型转换的深度指南

    C语言是一种广泛使用的计算机编程语言,由丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初期于贝尔实验室开发。C语言以其高效性、灵活性和对底层硬件的接近控制而闻名,它对操作系统、系统软件、嵌入式系统和许多...

    Java之父评价C语言之父.doc

    2. **对里奇个人的怀念**:许多人对丹尼斯·里奇的逝世表示哀悼,并认为他是计算机科学领域的伟大人物之一,其贡献将永远被铭记。 3. **对C语言的情感连接**:不少评论者分享了自己与C语言之间的故事,比如在学习...

    奇思妙想:15位计算机天才及其重大发现(美)丹尼斯 E.萨莎

    看到很多不全的,上传一个完整的,有200页和书签,扫描版 《奇思妙想:15位计算机天才及其重大发现》(OUR OF THEIR MINDS):成功学第一法则,“追随成功者的轨迹”。

    丹尼斯:丹尼斯MUD

    丹尼斯MUD-多人文字冒险沙箱 Dennis是一个受启发的MUD(多用户地下城,又名多玩家文本冒险)和协作写作练习,其中所有内容均由用户使用游戏内命令创建。 游戏从一个空房间开始,然后一个或多个玩家通过添加房间,...

    编程语言基础-C语言第一章

    C语言的发展史可以追溯到1970年,当时丹尼斯•里奇和肯•汤普森研制出了B语言,后来丹尼斯•里奇把B语言改成了C语言。C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点。C语言的发展迅速,并且成为最受...

Global site tag (gtag.js) - Google Analytics