C语言发展简史

时间:2022-10-09 17:08:56 | 浏览:1463

下面是我对 布莱恩·克尼汉Brian Kernighan 的采访,他(与 丹尼斯·里奇Dennis Ritchie)是《C 程序设计语言The C Programming Language》一书的共同作者,我们谈及了 C 语言及其 50

下面是我对 布莱恩·克尼汉Brian Kernighan 的采访,他(与 丹尼斯·里奇Dennis Ritchie)是《C 程序设计语言The C Programming Language》一书的共同作者,我们谈及了 C 语言及其 50 年的历史。

C 语言将在 2022 年满 50 岁。然而,尽管它历史悠久,在许多“流行编程语言”的调查中,C 语言仍然是“最常用”的编程语言之一。例如,你可以看看 TIOBE 指数,它追踪不同编程语言的流行程度。许多 Linux 应用程序是用 C 语言编写的,例如 GNOME 桌面。

我采访了 布莱恩·克尼汉Brian Kernighan,以了解更多关于 C 语言及其历史他(与 丹尼斯·里奇Dennis Ritchie)是《C 程序设计语言The C Programming Language》一书的共同作者。

C 语言是怎么诞生的呢?

C 语言由一系列旨在进行系统编程的语言演变而来,系统编程就是编写像编译器、汇编器、编辑器以及最终的操作系统这样的程序。麻省理工学院有一个与贝尔实验室合作的 Multics 项目,它计划用一种高级语言编写系统的所有部分(这在 1965 年那时候是一个新想法)。他们打算使用 IBM 的 PL/1,但它非常复杂,而且承诺的编译器也没有及时交付。

在与一个叫做 EPL 的子集(由贝尔实验室的道格拉斯·麦克罗伊Douglas McIlroy 设计)进行了短暂交流后,Multics 转向了 BCPL,这是一个由剑桥的 Martin Richards 设计和实现的,更加简单和干净的语言,我记得他当时正在麻省理工学院访问。当 肯·汤普逊Ken Thompson 开始研究后来的 Unix 时,他在 BCPL 的基础上创造了一种更简单的语言,他称之为 B 语言。在 1969 年,他为搭载了第一个 Unix 原型系统的 PDP-7 计算机实现了这种语言。

BCPL 和 B 都是“无类型”语言。也就是说,它们只有一种数据类型,即整数。DEC 公司的 PDP-11 计算机大约在 1971 年投入使用,它搭载了第一个真正的 Unix 系统。PDP-11 支持几种数据类型,特别是 8 位字节和 16 位整数。因此,一种同样支持几种数据类型的语言是更好的选择。这就是 C 语言的起源。

C 语言在贝尔实验室和早期版本的 Unix 中是如何使用的呢?

C 语言最初只在 Unix 上使用,尽管过了一段时间,也有了用于其他机器和操作系统的 C 语言编译器。大多数情况下,它被用于系统级的编程,涵盖了相当多有趣的领域,还有很多用于管理 AT&T 电话网络运营的系统。

在贝尔实验室用 C 语言编写的最有趣的项目是什么?

可以说,最有趣、最令人难忘、也是最重要的 C 语言程序就是 Unix 操作系统本身。1971 年 Unix 的第一个版本是用 PDP-11 汇编语言编写的,但到了第四版,也就是 1973 年左右,我们用 C 语言重写了它。这很关键,因为这意味着操作系统(和它所有的支持软件)基本上可以通过重新编译来移植到不同类型的计算机上。虽然在实践中并没有那么简单,但也相差不远。

你与丹尼斯·里奇合著了《C 程序设计语言》一书。那本书是怎么来的,你和丹尼斯又是如何在书中合作的呢?

我曾经写过一本肯·汤普逊的 B 语言教程,帮助人们快速上手使用它。当 C 语言可用时,我将其升级为 C 语言的教程。过了一段时间,我说服了丹尼斯,让他和我一起写一本 C 语言的书。基本上,除了系统调用那章外,大部分的教程材料都是我写的,而丹尼斯已经写好了那个参考手册,写的非常棒。然后我们反复修改,使教程部分更加流畅。参考手册几乎保持不变,因为它从一开始就写得很好。这本书的格式是用 troff格式器格式的,这是 Unix 上的许多工具之一,我做了大部分的格式化工作。

C 语言什么时候成为了贝尔实验室以外的其他程序员用于工作的东西呢?

我真的记不大清了,但我认为大概是在最初的五六年里,C 语言主要是跟着 Unix 一起发展的。随着其他操作系统上的编译器的发展,它开始蔓延到 Unix 以外的其他系统。我不记得我们是什么时候意识到 C 和 Unix 产生了真正的影响,但应该是在 20 世纪 70 年代中后期。

为什么 C 语言会成为如此有影响力的编程语言呢?

早期的主要原因是它与 Unix 的联系,Unix 在世界上迅速传播。如果你使用 Unix,你就会用 C 语言来编程。后来,C 语言传播到不一定运行 Unix 的计算机上,很大程度上是因为 Steve Johnson 编写了可移植 C 语言编译器。在工作站领域,比如 昇阳微系统(Sun Microsystems)、MIPS(后来成为 SGI)和其他公司,它们都是因为 Unix 和 C 语言的结合而获得成功。IBM PC 出现得稍晚一些,大约在 1982 年。后来 C 语言成为 MS-DOS 和 Windows 下的标准编程语言之一。今天,大多数物联网(IoT)设备会使用 C 语言。

在创建约 50 年后的今天,C 仍然是一种流行的编程语言。为什么它仍然如此受欢迎呢?

我认为 C 语言在效率和表现力这两个方面达到了一个平衡点。在早期,效率真的很重要,因为与我们今天所使用的计算机相比,当时的计算机速度很慢、内存十分有限。C 语言是非常高效的,因为它可以被编译成高效的机器代码,而且它也足够简单,人们很容易学会如何编译它。同时,它还具有很强的表现力,易于编写,并且结构紧凑。至少在我谦虚而正确的观点中,没有任何一种语言能很好地达到这种境界。

多年来,C 语言的发展和变化如何?

我想,C 语言的发展是适度的,但我并没有太注意 C 语言标准的发展。C 语言已经有足够的改变了,80 年代写的代码需要做一些前置工作才能编译,但这主要与诚实对待类型有关。比较新的功能,如复数,也许是有用的,但对我来说不是,所以我不能做出明智的评论。

哪些编程问题可以用C语言最容易解决?

嗯,对于任何事情来说,它都是一种很好的语言,但在今天,有了充足的内存和处理能力,大多数程序员都可以用 Python 这样的语言来进行内存管理和处理其他更高级的结构。C 语言仍然是底层编程的一个很好的选择,因为对于底层编程来说,充分利用 CPU 周期和每一个字节仍然很重要。

C 语言影响了其他编程语言,包括 C++、Java、Go 和 Rust。你对这些编程语言有什么看法?

几乎每一种语言在某些方面都是对其前辈的反应。简单点说,C++ 增加了控制信息访问的机制,所以对于真正的大型程序来说,它比 C 更好。Java是对 C++ 的复杂性的一种反应。Go 是对 C++ 的复杂性和Java的限制的一种反应。Rust是对 C 语言(大概也是对 C++)中内存管理问题的一种尝试,同时它接近了 C 语言的效率。

它们都带来了某些积极的特性,但不知何故,没有人能够完全满意,所以总是会有更多的语言,反过来对以前的语言做出反应。同时,老的语言,在大多数情况下,仍会继续存在,因为它们的工作做得很好,而且有一个嵌入式的根据地,老的语言在里面可以完美使用,而用新的东西来重新实现是不可行的。

感谢 Brian 为我们分享了 C 语言编程的伟大历史!

via: https://opensource.com/article/22/3/how-c-programming-language-has-grown

作者:Jim Hall选题:lkxed译者:lkxed校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

相关资讯

握稳“方向盘”踩好“油门板”推动“人城境业”融合发展

“坚持绿色低碳发展,建设区域产业发展高地,全力‘奋进全国百强、建设幸福江阳’。”3月16日召开的江阳区委十届四次全会为江阳经济社会高质量发展铿锵落子。起跑即冲刺。2022年,泸州江阳区在成渝地区双城经济圈建设和全市“一体两翼”特色发展的大背

高建军在鼓楼区现场办公时强调锚定发展方位当好示范标杆推动鼓楼区高质量发展再上台阶

来源:【开封日报-开封网】开封网讯 全媒体记者魏东柱报道 根据市委关于开展市级领导分包联系县区工作安排,4月28日,市委书记高建军到鼓楼区现场办公,强调深入贯彻“16136”总体工作思路,用好“16136”工作推进机制,锚定发展方位,当好示

重磅,长三角一体化发展规划“十四五”实施方案印发!湾沚区发展将进入新时代

日前,《长三角一体化发展规划“十四五”实施方案》经推动长三角一体化发展领导小组第三次全体会议审议通过印发,其中,和湾沚区有关的建设、规划在文件中明确提及!《长三角一体化发展规划“十四五”实施方案》中第88条明确提及“制定芜湖(京东)全球航空

淮北市相山区推进质量强区战略助力高质量发展

来源:人民网-安徽频道日前,安徽省质量工作领导小组发布文件,命名8个县(市、区)为“安徽省质量强县(市、区)”,相山区获评殊荣。近年来,相山区不断建设完善质量机制,大力推进质量提升,着力夯实质量基础,先后出台《推进质量治理体系和治理能力建设

大局已定!阜阳这个区被国家看中!即将大力发展……

近日,全国普法办公室发布关于表彰“全国法治县(市、区)创建活动先进单位”的通知阜阳市颍东区名列其中▼这次安徽省共有17个县(市、区)在国家的重重选拔中脱颖而出荣获这“国家级”的荣誉而阜阳市只有颍东区得此荣誉入选这份名单有什么用?全国法治县(

寒亭区:奋力打造高质量发展新引擎

高铁北站坐拥国家农综区核心区、中央商务区、高铁新片区三大绝佳发展平台的山东省潍坊市寒亭区,以重点工作攻坚突破为利器,抢抓崛起成峰的窗口机遇,一路高歌猛进。把握高质量发展的“风口”,强化高质量发展的“磁场”,寒亭区在重点工作攻坚突破中集聚起强

解读党代会报告|东营:聚力深化改革开放激发高质量发展动力活力

大众网·海报新闻记者 孔祥茹 东营报道2022年2月17日,杨国强在东营市第七次党代会上作《牢记殷切嘱托 勇担战略使命 为加快建设高水平现代化强市而不懈奋斗》报告。报告指出,要聚力深化改革开放激发高质量发展动力活力。用足用好改革开放“关键一

探索“创森+”发展模式菏泽成武俊美如画

中国山东网-感知山东8月19日讯(记者 王丹玉) 菏泽成武,是一个充满生机与活力的地方,处处跳动着绿色的脉搏,在呼吸间绽放着生态之美。近日,中国山东网记者实地探访成武县“创森”工作,看到风光秀丽的绿色画卷在菏泽市成武县徐徐展开。创森+生态建

山阴举办碳中和创新发展研讨会

本报讯(记者袁兆辉)8月1日,由中共山阴县委、山阴县人民政府主办的碳中和创新发展研讨会在山阴县举行。来自全国各地碳中和研究领域的专家学者、企业家,山阴县相关单位、企业、乡镇负责人共300多人参加研讨会。据了解,举办碳中和创新发展研讨会,是山

伍佰艺沉香:以酒为媒推动中国酒业繁荣发展

为弘扬世界名酒文化,彰显中国酒都风采,展示投资开放潜力,推动中国酒业走向国际,促进更多世界名酒企业走进中国,12月17日,第三届中国国际名酒文化节在宜宾临港国际会展中心开幕。100多家国内知名白酒企业和法国、英国、俄罗斯、意大利、西班牙、德

友情链接

天天财经元宇宙中国SEO域名抢注宝宝起名网网站监控眉山新闻头条网红蜻蜓A股今日大同元宇宙资讯网董氏起名神器益阳头条新闻网红木家具网双子座星座网易方达基金资讯网广元新闻头条网华夏基金资讯网塔罗牌占卜网今日信阳国学易经文化网博时基金资讯网瑞士名表官网运动健身资讯网出国留学网暗杀风暴电影网佛山照明灯饰网广东旅游网股票证券网全球品牌加盟网贵州茅台A股无人机航拍网天天基金行情网内江新闻头条网罗姓宝宝起名网网站开发快速建站专利注册申请查询网
c语言中文官网-零基础c++从入门到精通pdf、c语言编译器、C/C++开发工具、c语言入门自学零基础、c++入门自学、c/c++软件下载、c语言编程软件、c语言自学免费网站、c语言零基础自学视频教程、c++手机编程软件、c语言入门程序设计、初级编程视频教程、c语言在线编程平台、C语言线上作业网站。
c语言中文官网 chuxinxin.cn©2022-2028版权所有