卡卷网
当前位置:卡卷网 / 每日看点 / 正文

为什么很多人认为C语言的程序只能在黑窗口下运行?

作者:卡卷网发布时间:2024-12-04 16:04浏览数量:91次评论数量:0次

理论上来说C语言可以用来写任何程序,包括命令行程序(所谓黑窗口)、GUI程序、游戏、操作系统等等。但是我们不会这么做,就好像我们确实可以骑自行车去很远的地方,但是我们还是会选择乘高铁,开汽车,除非有特殊爱好。

为什么C语言的程序总是在黑窗口下运行,给人一种过时又神秘的感觉呢?

我们来先聊聊C语言的发展历史。

最开始,C语言是为了开展Unix系统上的软件开发工作,使用汇编语言来实现的。它的出现代替了汇编语言那种晦涩难懂的计算机编程语言,从而使得软件编程这件事,从过去编写让计算机能阅读的语言进化成为了编写人类能阅读的语言。

为什么很多人认为C语言的程序只能在黑窗口下运行?  第1张

汇编语言长这样

C语言这个伟大的工具的发明,归功于C语言之父丹尼斯·里奇(Dennis Ritchie)和肯·汤普森(Ken Thompson),他们是贝尔实验室的同事,也是C语言和Unix的联合发明人。

为什么很多人认为C语言的程序只能在黑窗口下运行?  第2张

左边是肯·汤普森,右边是丹尼斯·里奇

肯·汤普森率先开发了一种基于BCPL("Basic Combined Programming Language")的编程语言,叫做B语言,但是B语言被使用的非常的少,是因为这个语言运行起来太慢,还缺少操作字节地址等诸多缺陷。

冷知识:B语言虽然已经被丢进了历史的垃圾桶,但是B语言因为一个人的出现仍然应该被记住,这个人就是丹尼斯·里奇和肯·汤普森在贝尔实验室的同事,金句王---布莱恩·克尼汉(Brian Kernighan)。

为什么很多人认为C语言的程序只能在黑窗口下运行?  第3张

布莱恩·克尼汉

这个大佬不但是《B语言程序设计》、《C语言程序设计》、和后来的《Go语言程序设计》的作者之一,还发明了“hello world”这个程序世界著名的梗,他就是在《B语言程序设计》这本书里写下的人类历史上第一个hello world程序。同时,他还创造了另一个金句----“所见即所得”,也就是"What You See Is What You Get" (WYSIWYG)。

为什么很多人认为C语言的程序只能在黑窗口下运行?  第4张

到了1971年,丹尼斯·里奇开始着手改造B语言,使得B语言不但在运行速度上得到了大幅的提升,并且在功能上得到了丰富。有趣的是,丹尼斯·里奇给它起了一个极其响亮的名字。

New B

为什么很多人认为C语言的程序只能在黑窗口下运行?  第5张

丹尼斯·里奇为“New B”新加入了很多后来广为人知的功能,包括int 和 char 数组;指针,提供指向其他类型数据的能力;任何类型的数组; 函数返回类型等,然后他又为这个语言开发了一个新的编译器。至此,他们才将这个新的语言命名为C语言。

从此开始,也宣布了C语言的彻底诞生。

随着C语言的一路成长,一直到今天我们每个人所使用的应用、操作系统还有各种嵌入式系统都有C语言的功劳,C语言也对后来出现的各种高级语言例如C++、苹果的Objective-C、微软的C#、Android里面使用的JAVA等产生了巨大的影响。

丹尼斯·里奇也为其如此重大的贡献,和肯·汤普森一起获得了太多的奖项,包括图灵奖、IEEE理查德·卫斯里·汉明奖章、由克林顿总统颁发的国家技术创新奖等等。

为什么很多人认为C语言的程序只能在黑窗口下运行?  第6张

右边为丹尼斯·里奇

在如此巨大的名誉面前,这个老头,并没有选择去建立一个商业帝国,也没有去寻求过公众的关注。他保持着自己的安静、谦虚,带着职业使命感一次次回到自己热爱的计算机科学事业当中。

总有人拿他和乔布斯比较,因为没有丹尼斯·里奇就不会有乔布斯的苹果公司赖以发家致富的技术。

他们一个人在后台一个人在前台,一个安静一个喧哗,一个用技术为人类铺设基础设施一个为人类带来产品和商业的奇迹。

2011年10月这样的两个天才,在同年同月的同一周去世了,只相隔了4天的时间。

为什么很多人认为C语言的程序只能在黑窗口下运行?  第7张

没有像乔布斯去世那样铺天盖地的报道,丹尼斯·里奇一个人孤独地死在了自己新泽西的寓所里,极少报道。

或许就像它的创始人的性格那样,C语言默默地运行着,可能大多数时候在黑色的窗口里,但它却支撑着这个世界丰富多彩的世界。它会继续默默无闻、淡泊名利、却一直默默运行着,就像它的创始人计算机科学家--丹尼斯·里奇

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码