丹尼斯·里奇:让乔布斯立足肩上的C语言之父

在互联网上,几乎所有东西都会使用C语言和Unix操作系统,但C语言之父的离世却很少有人缅怀。2011年,人们对乔布斯的去世记忆深刻,但这一年还有另一位本应获得同样关注的人物也与世长辞,他就是C语言之父丹尼斯·里奇(Dennis Ritchie)。


不过,并非所有人都没能正确认识到里奇所曾作出的贡献。


“乔 布斯的逝世引起了一片哭声,那种情形非常动人,而且乔布斯受到这样的待遇也是合情合理的。但在事实上,里奇对这个世界的影响更大,然而公众却甚至都不知道 他到底是谁。”编程领域中的传奇人物、目前供职于谷歌(微博)的罗伯·派克(Rob Pike)说道,他曾在贝尔实验室与里奇共事20年。


在 里奇去世时,派克在Google+社交网络上发帖宣布了这一噩耗。2011年10月8日,在经历了长时间的病痛折磨后,里奇在他位于美国新泽西州的家中与 世长辞。在资深科技人士中,人们对这一消息所作出的反应是巨大的;但在互联网上,人们向里奇献上的悼词完全无法与他对现代社会带来的广泛影响画上等号。


C语言之父


丹 尼斯·里奇被誉为“C语言之父”,他在生前与贝尔实验室的合作伙伴肯·汤普森(Ken Thompson)一起利用这种编程语言开发出了Unix操作系统。在随后的岁月里,整个科技世界中有太多东西都是在这个操作系统的基础上构建起来的,其 中也包括乔布斯生前所建立和管理的苹果“帝国”。


“在互联网上,几乎所有东西都会使用C语言和Unix操作系统。” 派克在近日接受《连线》杂志采访时说道。“浏览器是用C语言写成的;Unix内核是用C语言写成的;网络服务器是用C语言写成的,否则就是用衍生自C语言 的Java或C++语言写成的,要么就是Python或Ruby语言,而这两种语言都是在C语言中执行的。此外,我几乎可以担保,所有运行这些程序的网络 硬件也都是用C语言写成的。”


“现代信息经济在极大程度上是在里奇生前所做工作的基础上建立起来的,对此无论用多么夸张的言辞来形容都不为过。”派克说道。


他 还补充道,就连微软Windows操作系统也曾是用C语言来编程的;而且,Unix还为苹果的桌面操作系统Mac OS X和移动操作系统iOS提供了支持。“乔布斯可以说是‘有形之王’,而里奇则基本上应该算是‘无形之王’。”麻省理工学院电子工程大学和计算机科学教授、 计算机科学及人工智能实验室(Computer Science and Artificial Intelligence Laboratory)成员马丁·里纳德(Martin Rinard)说道。


“乔布斯的天才之处在于,他能造出这些令人们深深喜爱的产品,这是因为他很有品味,能作出让人们叹服不已的东西。而里奇造出的东西能让那些技术人士用来构建核心的基础设施,这些基础设施在建成以后不一定会让人们再看得到,但却每天都用得到。”


从“B”到“C”


里 奇之所以开发出C语言,是因为他和汤普森需要一种更好的方式来构建Unix系统。最早的Unix内核是用汇编语言编程的,但不久以后两人决定需要开发出一 种“更高级别”的语言,能让他们对遍及这个操作系统中的所有数据都具备更大的控制力。1970年前后,他们用Fortran语言开发出了第二个版本的 Unix系统,但效果并不理想。然后,里奇就基于汤普森开发的“B语言”提出了一种新的语言。


关于B语言的得名有两种说法,一种说法是来自汤普森的妻子邦妮(Bonnie),另一种说法则是来自上个世纪六十年代中期诞生于剑桥大学的BCP语言。但无论如何,C语言是从B语言衍生出来的这一点都是毋庸置疑的。


B语言是一种解释性语言,而C语言则是一种编译语言,可被转译为机器编码,然后在CPU上被直接执行。在当时,C语言被认为是一种更高级别的语言,不但能给里奇和汤普森带来他们所需要的灵活性,同时速度也很快。


与 人们今天所知的C语言相比,第一个版本的C语言并无多大不同,只是稍微简单一些。这种语言能提供完整的数据结构和变量类型,令里奇和汤普森得以构建了新的 Unix内核。“他们开发出C语言是为了写一个程序。”派克说道,他在C语言问世的十年以后加入了贝尔实验室。“而那时他们想要编写的程序就是Unix内 核。”


里奇曾开玩笑地说道,C语言拥有“汇编语言的力量及其便利性”。换而言之,他承认C语言是一种不那么华丽的语 言,其运行位置仍非常接近硬件。在今天,C语言被视为一种低级别的语言,而非高级别。但里奇的这句玩笑话对这种新的语言来说也并不那么公平,原因是从提供 真实的数据结构这一方面来说,其运行级别足够高。


来自:腾讯科技

——————————————————
本文编号56,以后想阅读这篇文章直接输入57即可。输入m可以获取到文章目录。

程序猿微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API、Objective-C Reference、Python函数库、Lua函数库查询功能。

 如果你觉得程序猿公众微信对你有帮助,请点击右上角“...”标志分享到【朋友圈】,感谢您对小猿的支持!

 在微信搜索“程序猿”或者“imkuqin”可订阅程序猿微信。
—————————————————

转载于:https://my.oschina.net/Yamazaki/blog/193415

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值