现在的位置: 首页 > 综合 > 正文

C之父-Dennis M Ritchie

2013年10月03日 ⁄ 综合 ⁄ 共 4812字 ⁄ 字号 评论关闭

 C之父-Dennis M Ritchie(丹尼斯·里奇)

C语言是在UNIX之父Ken Thompson发明的B语言基础之上演化而来的
C语言的发展颇为有趣。它的原型ALGOL 60语言。
C语言是一门伟大的语言,一门伟大的承前启后的语言。
C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C而得已快速移植落地生根,
两者相辅相承,成就了软件史上最精彩的一幕。
而对于C的诞生,大师对他的描述是那样地不经意。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年, Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。
1973年,B语言也给人“煮”了一下,在B语言的基础上最终设计出了一种新的语言,
他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C程序设计语言(The C Programming Language)》,
从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。
由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。
为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准。
C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。
许多著名的系统软件,如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。
用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了。C++、Java等语言受C语言影响深刻。

C语言是使用最广泛的语言之一,C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。
自C语言出现后,以C语言为根基的C++、Java和C#等面向对象语言相继诞生,并在各自领域大获成功。
但今天C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。
C语言,这种最有效、最通用的编程语言,就是他开发的,而这还是他在做另一个UNIX项目时的副产品。
Dennis Ritchie还和一起开发了Unix操作系统.
现年64岁的40年如一日在贝尔实验室(原AT&T实验室)工作,现在是计算科学研究中心系统软件研究部主任。
从二十世纪七十年代起,他的工作得到了很多计算机组织的公认和表彰,
如:美国计算机协会(ACM)授予的系统及语言杰出论文奖(1974);
电气和电子工程师协会(IEEE)的 Emmanuel Piore 奖(1982);
贝尔实验室特别人员奖(1983);
美国计算机协会(ACM)的图灵奖(1983);
NEC公司的 C&C 基金奖(1989);
电气和电子工程师协会(IEEE)的优秀奖章(Hamming Medal)(1990), 等等。
目前,Dennis M. Ritchie 正担任贝尔实验室/朗讯科技公司(原AT&T实验室)下属的计算科学研究中心系统软件研究部的主任一职。
该中心位于美国新泽西州的 Murray Hill。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C程序设计语言(The C Programming Language)》,
现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。

在Ritchie的成长历程中,有两个人对他的影响最大,一个是他父亲,
而另一个是他的挚友,同为UNIX发明人的Ken Thompson。
尤其是后者,我们可以从后面他对此问题的回答中得到印证。
有人问过Dennis,他的偶像是谁,不论在计算机领域还是其他领域?
他说:我不是在英雄熏陶下成长起来的。很显然,对我职业生涯影响最大的人物是Ken Thompson。
UNIX大部分是他的工作,同样也是C语言的前辈,同样Plan 9系统的大部分工作也是他做的。并且在这其间Ken做了第一个计算机象棋大师。
Ritchie生于1941年9月9日的纽约 Bronxville,获得学士学位并且获得哈佛大学更高的学位,
在那里以肄业生资格学习物理,以研究生资格学习应用数学。也正是在这时候,一个偶然的机会改变了他一生的选择。
Ritchie这样描述他的转变,当他听取一些非课程类的计算机讲座后(大约1960年),
开始对计算机着迷,并选择了一学期正规(介绍性的)课程。
第一部分是模拟计算机,后面是关于打孔卡片设备的,然后是关于真正的数字式计算机的,并为Univac I号机准备了一个程序。
当时他是一个主修物理学的学生,但是更加着迷于计算机处理的理论和实际问题。
因此,他的毕业论文大部分是理论方面的(递归函数的层次),但是也开始投入更大精力到实践方面。
作为助教为同一个介绍性课程的后续版本工作了三年——不过那时计算机已经成了IBM7049。
1968年获得数学博士,而论文正是上面的《递归函数的的层次》。

1967年加入贝尔实验室,他的父亲Alistair E. Ritchie在那里有长时间的工作经历,
他的父亲对晶体管电路类的东西很有研究,正是由于父亲的影响,也使得他走上了科学研究之路。

不久后,加入了Multics项目,那时由贝尔实验室、麻省理工学院和通用电器三家的合作项目。
Ritchie负责多道处理机的BCPL语言和GE650的编译器,它们都是属于GECOS系统的。
同样的,他也写了ALTRAN语言的代数编译器,那是用于符号计算机的一种语言和系统。

后来,Ritchie先生协助Ken Thompson做UNIX操作系统。
在UNIX系统基本就绪并且在教育、政府和商业中得到一定程度的应用时,S
teve Johnson和他(在Ken帮助下)开始将这个操作系统移植到Interdata 8/32上,
通过这种方式证明其轻便性,基于UNIX快速的传播:贝尔实验室的第7版已经成为商业化UNIX的第五版和BSD UNIX的基础。

在UNIX发展之前,他向Thompson的B语言中加入数据类型和新的句法,就这样产生了一种新语言——C,
这也是他说Thompson是C语言的前辈的原因。
C是便携式UNIX的基础,并且它也在其它领域得到了广泛应用;
计算机各方面的应用程序和系统发展,从手持设备到巨型机,都有对它的应用。
有美国标准和国际标准的C语言,并且它是后来Stroustrup 写的C++语言的基础。
他从来没有间断过在计算机及其操作系统方面的工作。也因此,他所领导的研究小组开发出了 Plan 9 和 Inferno。
早先上大学时包括读研究生,我在计算机理论方面花了不少时间(如图灵机、复杂性理论)。
这其间,我对真实的电脑也非常着迷,着迷于所编即所见的经历:
当你编出一个程序,便能立即看到你的思想的实现!
所有的事情以一种非常有趣的方式联系在了一起,也正是这一类的东西促使我进入这一领域。
但不知什么原因,我没有想过我正在这一领域做什么,即使时光倒流到1968年,我想也是如此。
C语言或Unix,任一项发明足以让Dennis成为一代又一代程序员们的偶像。
但当我们接触这位伟人之后发现,Dennis是一位非常低调的人,形成对照的是他在软件业成就辉煌的40年。
今天,当初与他同期加入贝尔实验室的科学家中,多数人都已安享晚年或是自立门户成为老板,
而Dennis还是一如既往地在这里从事自己喜欢的研究工作,著书立说,潜心编程。
在完成C语言和Unix两座高峰后,他还带领他的研究小组开发出了 新一代操作系统Plan 9 和 Inferno。
C语言和UNIX的发展历程,还让我们从侧面见证了业界流流传很久的话题:贝尔实验室出大师!
而在谈到贝尔实验室成功的原因时,Dennis的评价只有四个字:管理得到!
贝尔实验室是全球驰名的研发机构,遍布全球16个国家,自1937年以来已经产生出11位诺贝尔奖获得者。
贝尔实验室的科学家和研究人员自1925年以来已经获得了40,000多项发明,30,000多项专利,
平均每个工作日超过4项,是全球最多产的发明源泉之一。
贝尔实验室原名“贝尔电话实验室”,1996年10月正式改称“贝尔实验室”(Bell Labs),
先后为AT&T和朗讯科技公司的研发机构,也是后者得以成立的支柱。
它主要从事通信科技的基础研究和技术发展工作,目前还从事通信系统和设备的研制工作。
自1925年成立之时起,它一直是世界上规模最大、通信科技和控制等方面最先进、
优秀人才最集中和科技成果最突出的工业研究实验室或研发机构。
它的工作人员从成立时的3600人和年经费1200万美元发展到1991年的29000人和37亿美元。
在1999年,雇员人数仍为25000人,年经费36.78亿美元,依然雄居世界研发机构的榜首,
被称为“世界首要的研发机构”和研发的“象牙之塔”。
当问到他对C语言的将来做一下预测时,他的回答十分简洁:
C语言正在被C++,也可能是Java所替代,也可能是更高级的脚本语言。当然,它在关于系统一类设计中还是相当强的工具。
近40年如一日,在他所从事的领域辛勤耕耘,
而他的多项发明,包括C语言,Unix,也包括现在正在进行的Plan9,
无论哪一项,在软件发展史上都有着举足轻重的地位,和他的伟大成就形成对照的是他的行事,态度低调,
他的表达,象他的软件一样,简洁生动而准确。
C++的成功,很大一部分也来自于C,是C语言的普及和深入,才有了后面的凤凰涅盘,

问答QS:
问: C语言设计目标有没有随着时间推移而改变?如果没变,为什么?
答: 我个人的目标这些年来一直未变,并且,我不是1989和1999年标准的主要推动者。
无论1989年ANSI标准还是ISO标准都使事情制度化了,这些条文比我最初写的文档要好;
最需要加以说明的是我早先关于函数原型做的工作,对C++语言的影响是非常重要的一个影响。
而在关于众多计算机语言的激烈辩论中,始终处在中心位置的C语言作者Dennis却显得很平静。

问: 你怎么看待 C++ 和 Java,以及 C 和 C++ 程序员之间在 UseNet 上经常发生的激烈争论呢?
答: C++ 的很大一部分得宜于 C。因为 C 早在 C++ 出现之前就已经具有了非常好的兼容性,
C++ 才可以采用 C 作为建构自身的基础并使用它来开发自己的编译器。
C 被设计成为一种便携式汇编语言,对于这一特性人们褒贬不一,
C++ 则试图把编程方法提高到面向对象这种更抽象的层次上来。
从最近形成的标准来看,二者共同的缺点是:带有过多的装饰和附属物。
同样的,它们都采用了相同的编程思想,都试图按照真正的需求来编写代码。
Java 显然是 C++ 的改进版本,它砍掉了 C 中的指针操作部分,

问:您能对IT的将来做一下预测吗?将来我们最有可能用什么语言?
答:很明显,人们正在从象C语言之类的直接编译型语言,转换到注重解释性的语言,象某些脚本语言。

问:您是怎样发明C语言的?发明的过程是什么样子的。它对您的生活和研究有什么影响吗?
D M R:公正地说,发明C语言的目的是:为了写编译器和语言设计,
为了更易于编写UNIX操作系统程序,我们做的一个可以在小型计算机上使用的工具。

问:您觉得C语言和C++有什么不同吗?
多年以来,C和C++,已经是两种不同的语言了;
Stroustrup先生汲取了C语言语法和潜在的语义学中的许多东西,形成了C++语言。

问:您觉得计算机语言和我们人类的语言有什么不同呢?
计算机语言更加正式和明确,有统一的规则,当然,它们都是经过设计的。
人类语言有语法,但相对来说不很正式,有些规则可以打破,当然,它们有不同的目的——为了同人交流而不是同机器交流。

 

 

抱歉!评论已关闭.