博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言影响运行速度_C的巨大影响
阅读量:2525 次
发布时间:2019-05-11

本文共 2980 字,大约阅读时间需要 9 分钟。

c语言影响运行速度

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

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

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

通往C的道路始于失败

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

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

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

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

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

“五年来,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的系统相比有效的玩具上进行了编程。 深入探讨了接下来的内容:

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

正如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年出版一书的原始“ Hello World”(尽管该说法不是确定的)。

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

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

C对类型的使用以及易于编译为高效的汇编代码的特性,使其成为小型计算机兴起的理想语言,微型计算机以字节码表示。 B最终被C所取代。一旦C成为Unix的语言,它就成为了新兴计算机行业的事实上的标准。 Unix是互联网时代之前共享平台。 人们写的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)也应得到他们的称赞。 他们四个都是真正的命令行英雄。

整理季节

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

翻译自:

c语言影响运行速度

转载地址:http://fhizd.baihongyu.com/

你可能感兴趣的文章
webservice4
查看>>
Magento 使用心得
查看>>
向量点积计算
查看>>
【转】 SQL 2005 try catch
查看>>
(75)zabbix_server.conf配置文件详解
查看>>
2016/1/3--jquery
查看>>
网络流24题-骑士共存问题
查看>>
HTML5的28个常用特性
查看>>
uml与数据库设计
查看>>
sqlplus
查看>>
.net 中文语音朗读
查看>>
asp.net 生成图形验证码(字母和数字混合)
查看>>
ajax分页效果、分类联动、搜索功能
查看>>
linux 下使用 tc 模拟网络延迟和丢包
查看>>
Bootstrap 教程 之 Less 入门文档
查看>>
期望dp+高斯消元——bzoj3143
查看>>
iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
查看>>
ValueStack中的context与ActionContext的区别
查看>>
mysql学习笔记4
查看>>
Lua的元方法__newindex元方法
查看>>