相关文章  
  推荐  
  科普之友首页   专利     科普      动物      植物    天文   考古   前沿科技
 您现在的位置在:  首页>>科普 >>科学家

C和UNⅨ的发明者之一

同时获得1994年的计算机先驱奖是情理中的事。关于他们合作开发C和UNIX的过程,我们将在介绍汤普森时加以叙述,因为就C和UNIX两者的关系而言,UNIX的开发在前,C是为了使UNIX具有可移植性而后来研制的;就里奇和汤普森两人的关系而言,他们两人当然是亲密的合作者,但汤普森在UNIX的开发中起了主导的作用,而里奇则在C的设计中起的作用更大一些。

    里奇比汤普森年长两岁,1941年9月9日生于美国纽约州的勃浪克斯山庄(Bronxville),但在9岁时移居新泽西州的塞米特。里奇的父亲是一个电气工程师,在贝尔实验室的交换系统工程实验室当主任,因此,里奇一家可谓“贝尔世家”。里奇中学毕业后进哈佛大学学物理,并于1963年获得学士学位。其间,哈佛大学有了一台UNIVAC工,并给学生开设有关计算机系统的课程,里奇听了以后产生了很大的兴趣。毕业以后他在应用数学系攻读博士学位,完成了一个有关递归函数论方面的课题,写出了论文,但不知什么原因没有答辩,没有取得博士学位,他就离开了哈佛大学,于1967年进入贝尔实验室,与比他早一年到贝尔实验室的汤普森会合,从此开始了他们长达数十年的合作。

前面说过,UNIX的开发是以汤普森为主的,那末,为什么文献资料中一提到UNIX,都一致地说是里奇和汤普森共同开发的,而且在“排名”上往往是里奇在前,汤普森在后呢?包括他们在1973年由ACM主办、IBM承办的操作系统原理讨论会上首次向社会推介UNIX的论文The UNIX Time:Sharing System的署名,里奇也是第一作者,汤普森则为第二作者。里奇在UNIX开发中有些什么功劳呢?

这里有两个很重要的因素。首先,UNIX的成功应归功于它的创新。前面曾经提到,UNIX吸取与借鉴了MULTICS的经验,如内核,进程,层次式目录,面向流的I/O,把设备当做文件,等等。这是可以理解的,因为任何新事物必然是对原有事物的继承和发展。尤其是UNIX,毕竟没有正式立项,是汤普森、里奇等少数几个人偷偷干的,如果一切都要从头重新设计,那几乎是不可能的。但是UNIX在继承中又有创新,比如UNIX采用一种无格式的文件结构,文件由字节串加句号组成。这带来两大好处:一是在说明文件时不必加进许多无关的“填充物”(类似于COBOL中的FILLER);二是任何程序的输出可直接用做其他任何程序的输入,不必经过转换。后面这一点叫做“流水”(piping),就是UNIX首创的。此外,像把设备当做文件,从而简化了设备管理这一操作系统设计中的难题,虽然不是UNIX的发明,但是实现上它采用了一些新方法,比MULTICS更高明一些。正是在这些方面,里奇发挥了很重要的作用,使UNIX独具特色。

    其次,UNIX成功的一个重要因素是它的可移植性。正是里奇竭尽全力开发了C语言,并把UNIX用C重写了一遍,这才使它具有了这一特性。汤普森是用汇编语言开发UNIX的,这种语言高度依赖于硬件,由它开发的软件只能在相同的硬件平台上运行。里奇在由剑桥大学的里查德(M.Richard)于1969年开发的BCPL语言(Basic Combined Programming Language)的基础上,巧妙地对它进行改进、改造,形成了既具有机器语言能直接操作二进制位和字符的能力,又具有高级语言许多复杂处理功能如循环、转移、分支等的一种简单易学而又灵活、高效的高级程序设计语言。他们把这种语言称为C,一方面指明了继承关系(因为BCPL的首字母是B。有些资料说是汤普森先根据BCPL开发了一种称为B的语言,再由里奇根据B开发了C。这种说法并不太确切,因为我们在汤普森与里奇本人的叙述中,都没有见到有关B语言这一中间过程的说法),另一方面也反映了他们对软件追求简洁明了的一贯风格。C开发成功以后,里奇用C把UNIX重写了一遍。我们这里用了“重写”这个词,因为文献资料在提到这件事时都是用的这一说法,显得很轻巧;实际上,里奇做的这件事本身就是“移植”,即把汤普森用汇编语言实现的UNIX改用C来实现,这决不是什么轻巧的工作,尤其是对UNIX这样的大型软件这需要付出艰苦的劳动,也是一件需要创造性的工作。单是里奇此举就是可以大书特书的,而C作为可以不依附于UNIX的一个独立的软件产品,也自有其本身的巨大价值,在计算机发展史上可以写下浓重的一笔。C已经实现标准化,即ISO于1990年公布的ISO/IEC9899,它以ANSIC为基础,是第一个支持多8位字符集的程序设计语言国际标准。

本新闻共2页,当前在第1页  1  2  

             

< 1 >   < 2

     

      设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

Copyriht 2007 - 2008 ©  科普之友 All right reserved