热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言之父丹尼斯·里奇也登船了

昨日,在众多的国际互动论坛上,计算机爱好者们以特有的方式纪念这位编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅留下一个分号“;”。在C语言中,分号标志着一行指令语句的结束,网友们以此来悼念“C语言之父”,美国著名计算机专家丹尼斯

昨日,在众多的国际互动bbs' target='_blank'>论坛上,计算机爱好者们以特有的方式纪念这位

编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅留下一个

分号“;”。在C语言中,分号标志着一行指令语句的结束,网友们以此来悼

念“C语言之父”,美国著名计算机专家丹尼斯·里奇(Dennis Ritchie)所引领的时代悄然远去。

在日益纷繁复杂的程序设计语言王国中,C语言因其简洁、有效、通用的特

性而始终占据一席之地。被誉为“C语言之父”,同时也是操作系统Unix之父

的C语言发明人之一——丹尼斯·里奇10月9日以70岁之龄辞世。

生于1941年9月9日的丹尼斯·里奇曾在哈佛大学学习物理学和应用数学,

1967年他进入贝尔实验室,并曾经担任朗讯技术公司系统软件研究部门的领导人。

1983年,美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的肯·汤普逊

与里奇,获奖原因是他们“研究发展了通用的操作系统理论,尤其是实现了Unix

操作系统”。并且,美国计算机协会当年还决定新设立一个奖项——软件系统奖,

以奖励那些优秀的软件开发者,首个软件系统奖当然也是非他们两人莫属。

尽管通过Unix拿奖拿到手软,但令里奇引起最大关注和反响的则是C语言的问世。

1999年,里奇和汤普逊为发展C语言和Unix操作系统一起获得了美国国家技术奖章。

虽然在C语言之后,C++、Java等各式各样计算机高级语言层出不穷,但不少程序员

仍旧认为,C语言简洁、高效、灵活的特性令其具有独特魅力。“现在的程序编写朝

着越来越冗长庞大的方向发展,而C语言虽然属于相对‘低级’的编程语言,但它的

简洁之美是无可替代的。”一位电脑程序员道出了自己格外青睐C语言的原因。

和里奇所创造的C语言一样,Unix系统也同样具有简洁、朴素、小巧的特性。但正

如里奇自己所说的那样,“Unix系统是一个简单基本的操作系统,但学会欣赏简洁

需要天赋。”而里奇本人,尽管在软件发展史上占有举足轻重的地位,也同样在从

事的领域辛勤而低调地耕耘近40年。

在悼念里奇的论坛上,众多粉丝表达了对这位“C语言之父”常年坚持的敬意,一位粉丝

留言表示:“感谢丹尼斯·里奇,令我们拥有这一简洁而美丽的语言。”

而谷歌工程师派克则在Google+中称:“我获知丹尼斯·里奇在忍受了长期的病痛折磨后

在家中去世。此外,我没有获得更多的信息。”

延伸阅读

“C语言之父”也是“黑客之父”

由于C语言和Unix两项成就,里奇成为许多编程爱好者膜拜的对象。里奇在1978年出版的

《C程序设计语言》被程序员们称为“白皮书”,获得狂热拥戴。

然而,由于C语言的简洁和高效,也成为入侵他人电脑的利器之一。里奇因此被诸多电脑

黑客尊为导师,虽然里奇本人并不认可这一说法。

在Unix研发成功后不久,安装了这一程序的PDP-11被放在贝尔实验室供大家使用。

有一天,大家发现两位创始人总是可以得到最高的权限轻松进入他们的帐户,在贝

尔实验室这种高人云集的地方,这简直是太不能容忍的事情了。于是,若干愤懑的

同事仔细分析Unix代码,找到后门,修改后再重新编译整个Unix程序。当所有人都

以为这个世界应该从此清静了的时候,却发现他们的帐户权限还是很容易泄露。

直到很多年后,肯和里奇才道出其中的原委——原来代码里确实存在后门,不过并

不在Unix代码中,而是藏在编译Unix的编译器里。

为玩游戏研成C语言

作为一门伟大的编程语言,C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也

由于C语言的存在而得以快速落地生根,两者相辅相成,成就了软件史上最精彩的一幕。

不可思议的是,当初Unix这个操作系统的诞生,并不是为了推向市场,甚至不是为了让

更多人使用,而仅仅是作者为了方便自己使用,而且初衷是为了能更流畅地玩游戏。

连Unix这个别扭的名字,也是对早期一个名为Multics操作系统开玩笑的称呼。

1967年,里奇参与的第一个项目是Multics,这是一个操作系统项目,被设计在大型计

算机主机上运行,但是由于整个目标过于庞大,糅合了太多的特性,Multics的性能很低

,最终以失败而告终。Multics项目的开发者之一肯·汤普逊则继续为GE-5开发软件,

并最终编写了一个新操作系统项目,能够支持同时的多用户操作,也就是后来的Unix。

在不经意间,奇迹诞生了,由于Unix诸多优点,人们将它称为软件中的瑞士军刀。

这再一次验证了IT业的创新往往是兴趣,而不是大把大把的金钱使然。

最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言

混合编写的,在移植的过程中遇到不少麻烦。早在对Multics项目调整过程中,

就迫切需要一门高级计算机语言做工具,为了解决程序的可移植性问题,

肯·汤普逊和丹尼斯·里奇决定对它进行简单改进,形成NB语言。但NB在Unix的移植方面

依然不尽人意,此后里奇又对NB语言做了改进,C语言诞生。

这被计算机界认为是一个划时代的动作,C语言让Unix能够轻易地被移植到各种不同的机器上,

为Unix的迅速普及立下汗马功劳。


推荐阅读
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
author-avatar
手机用户2502938557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有