首页
社区
课程
招聘
[旧帖] 丹尼斯·里奇,那个给乔布斯提供肩膀的巨人 0.00雪花
发表于: 2013-8-4 16:28 1740

[旧帖] 丹尼斯·里奇,那个给乔布斯提供肩膀的巨人 0.00雪花

2013-8-4 16:28
1740
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 时最主要的初衷,也是如今新型操作系统的主流开发方法。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
纪念伟大的里奇!
2013-8-4 16:29
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个应该了解一下,谢谢分享。
2013-8-5 10:35
0
游客
登录 | 注册 方可回帖
返回
//