c语言影响运行速度_C的巨大影响

c语言影响运行速度

C是原始的通用编程语言。 《 Command Line Heroes》播客的第3季大结局以一种彰显C语言设计的长寿和力量的方式探索了C语言的起源。 它是播客第三季和本系列文章中讨论的所有语言的完美结合。

The original C programming guide by two of the language authors, circa 1978

C是一种非常基本的语言,以至于我们许多人都忘记了它的变化。 从技术上讲,它是一种“高级语言”,从某种意义上讲它要求编译器是可运行的,它与当今人们喜欢的汇编语言(在专用的低内存环境之外)非常接近。 它也被认为是使几乎所有随后出现的语言成为可能的语言。

通往C的道路始于失败

尽管一直存在神话,所有伟大的发明都来自竞争激烈的车库居民,但C的故事更适合于文艺复兴时期。

1960年代,位于新泽西州郊区的贝尔实验室是当时最具创新性的地方之一。 创意工厂的作者乔恩·格特纳(Jon Gertner)描述了乐观主义和解决棘手问题的热情所代表的时代文化。 贝尔实验室没有提供紧迫的货币化压力,而是为狂野的想法提供了似乎无穷无尽的资金。 它的研发精神与当今的开放式领导原则非常吻合。 结果非常显着,证明了如果没有风险投资或IPO的保证,就可以实现辉煌。

一个像Bash这样的shell ,那里是Multics项目。 这是一个假设的操作系统,成百上千的开发人员可以在同一系统上共享时间。 正如我最近探索的那样,这是Lisp的创造者约翰(John McCarty)的梦想,也是术语“人工智能(AI)”。

美国A人民计算史》的作者Joy Lisi Ranken描述了接下来发生的事情。 推动Multics拥有更通用的分时技术的愿景引起了公众的极大兴趣。 学术界,科学家,教育家以及广大公众都对这种由计算机驱动的未来充满期待。 许多人提倡将计算作为类似于电力的公共事业来使用,向分时度假的推动是一项全球运动。

到那时,高端大型机的每个系统的终端数量达到40-50个。 正如Warren Toomey在IEEE Spectrum中写道,规模的改变是雄心勃勃的,最终失败了。

“五年来,AT&T在Multics项目上投资了数百万美元,购买了GE-645大型计算机,并致力于公司著名的贝尔电话实验室的许多顶级研究人员的努力,其中包括汤普森和里奇,约瑟夫·奥斯森纳,斯图尔特·费尔德曼,道格拉斯·麦克罗伊(M. Douglas McIlroy)和已故的罗伯特·莫里斯(Robert Morris)。但是,新系统过于雄心勃勃,令人难以置信地落后于计划。

贝尔实验室在1969年退出了Multics计划。Multics不会发生。

C团契

资金结束了,功能强大的GE645大型机被分配给了贝尔实验室内部的其他任务。 但这并没有阻止所有人。

在Multics项目的最后一次支持中,有四位与该项目紧密相关的人:Ken Thompson,Dennis Ritchie,Doug McIlroy和JF Ossanna。 这四个顽固分子继续在纸上思考和涂鸦思想。 汤普森和里奇为PDP-7微型计算机开发了一款名为“太空旅行”的游戏。 在他们致力于这一工作的同时,汤普森开始实施所有疯狂的手写想法,这些想法涉及他们在Multics残骸中开发的文件系统。

A PDP-7 minicomputer

PDP-7微型计算机当时并不是最先进的技术,但是该团队实施了一些基础技术,这些技术改变了编程语言和操作系统的未来。

值得强调的是:一些原始的文件系统规范是手工编写的,然后在与他们用来构建Multics的系统相比有效的玩具上进行了编程。 Wikipedia的Ken Thompson页面深入探讨了接下来的内容:

“在编写Multics时,汤普森创建了Bon编程语言。他还创建了一个名为Space Travel的视频游戏。后来,贝尔实验室退出了MULTICS项目。为了继续玩游戏,汤普森找到了一台旧的PDP-7机器,最终,由汤普森(Thompson)开发的工具变成了Unix 操作系统 :在PDP-7上,由汤普森(Thompson)和里奇(Ritchie)领导的贝尔实验室研究人员团队(包括拉德·加拿大(Rudd Canaday))开发了分层文件系统计算机进程设备文件的概念, 命令行解释器 ,便于进程间通信的管道以及一些小型实用程序。1970年, Brian Kernighan在“ Multics”的双关语中提出了“ Unix”的名称。 在Unix的最初工作之后,汤普森决定Unix需要一种系统编程语言,并创建了B ,它是Ritchie的C的前身。”

正如Walter Toomey在上述IEEE Spectrum文章中所记录的那样,Unix以Multics项目从未实现的方式展现了希望。 在赢得了团队的支持并进行了更多的编程之后,通往Unix的道路铺平了道路。

在Unix中从B到C

汤普森Swift创建了一种叫做B的Unix语言。B从其前身BCPL继承了很多东西,但这还不足以脱离较旧的语言。 对于初学者,B不知道数据类型。 它被认为是一种无类型的语言,这意味着其“ Hello World”程序如下所示:


   
   
main( ) {
extrn a, b, c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}

a 'hell';
b 'o, w';
c 'orld';

即使您不是程序员,也很清楚,一次将字符串分割成四个字符是很有限的。 还值得注意的是,该文本被认为是Brian Kernighan于1972年出版的《语言B的教程入门》一书的原始“ Hello World”(尽管该说法不是确定的)。

除了无类型性,B的汇编语言版本仍然比使用B编译器的线程代码技术更快地生成程序。 因此,从1971年到1973年,Ritchie修改了B。他添加了“字符类型”,并构建了一个新的编译器,因此不再需要使用线程代码。 经过两年的工作,B成为了C。

在正确的时间进行正确的抽象

C对类型的使用以及易于编译为高效的汇编代码的特性,使其成为小型计算机兴起的理想语言,微型计算机以字节码表示。 B最终被C所取代。一旦C成为Unix的语言,它就成为了新兴计算机行业的事实上的标准。 Unix是互联网时代之前共享平台。 人们写的C越多,得到的效果就越好,被采用的程度也就越高。 最终它本身成为一个开放标准。 根据C编程语言简要历史

“多年来,事实上的C标准是Unix操作系统随附的版本。1983年夏天,成立了一个委员会,以创建定义C语言的ANSI(美国国家标准协会)标准。整个过程花了六年时间(比任何人合理预期的时间都要长得多)。”

今天的C有多大影响力? 快速浏览显示:

  • 所有主要操作系统的一部分都用C编写,包括macOS,Windows,Linux和Android。
  • 包括DB2,MySQL,MS SQL和PostgreSQL在内的世界上最多产的数据库都是用C编写的。
  • 许多编程语言细节都始于C,包括Python,Go,Perl的核心解释器和R统计语言。

汤普森(Thompson)和里奇(Ritchie)从零开始成为局外人几十年来,都被誉为编程界的巨头。 他们共同获得了1983年的图灵奖,并于1998年因在C语言和Unix方面的工作而获得了国家科学奖

Ritchie and Thompson receiving the National Medal of Technology from President Clinton, 1998

但是道格·麦克罗伊(Doug McIlroy)和JF欧桑娜(JF Ossanna)也应得到他们的称赞。 他们四个都是真正的命令行英雄。

整理季节

Command Line Heroes已经完成了对影响我们今天编码方式的编程语言的整个洞察。 了解这些语言并与您共享是一种荣幸。 希望您也喜欢它!

翻译自: https://opensource.com/article/19/10/command-line-heroes-c

c语言影响运行速度

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值