内容
带走:
像大多数创新一样,C编程语言随着时间的流逝发生了许多变化,但是即使是强大的技术浪潮(如IoT,AI和自动化)也未能使C脱颖而出。
C是计算历史上最重要的编程语言之一。如今,出现了许多不同的编程语言,它们提供了许多不同的功能,但是C以许多方式为此类语言提供了基础。
C是出于必要而诞生的。
尚不清楚其创建者是否曾设想C将会实现的伟大成就。像大多数创新一样,C随时间进行了许多更改。它最大的成就之一可能是即使在当今动荡的时代也能保持与时俱进的能力。
对于C的创造者来说,必须注意的是,他们的创造并没有被认为已经过时或被归类为仅在少数几个利基领域有用。取而代之的是,C被公认是一种通用的,功能强大的语言,可以应用于许多领域。 (直接从编程专家中找到有关顶级编程语言的更多信息:哪种函数式编程语言最适合立即学习?。)
C的开端
开发C最初并不是其创始人的目标。实际上,各种情况和问题为创建它创造了理想的情况。1960年代,诺基亚贝尔实验室(AT&T)的员工丹尼斯·里奇(Dennis Ritchie)和他的一些同事一直在努力开发一种可以同时被许多用户使用的操作系统。
该操作系统被称为Multics,它旨在允许许多用户共享公用计算资源。 Multics提供了很多好处,但是也有很多问题。从成本效益的角度来看,这是一个庞大的系统,似乎成本大于收益。贝尔实验室逐渐退出了该项目。
那就是Ritchie加入Ken Thompson和Brian Kernighan的另一个项目。该项目涉及开发新文件系统。汤普森用汇编语言为DEC PDP-7超级计算机开发了一个新的文件系统。
此后,文件系统的创建者对其进行了许多改进,从而诞生了UNIX操作系统。甚至UNIX名称的起源都可以追溯到其前身Multics。最初,它的名称是Unics(统一信息和计算服务),是Multics(多重信息和计算机服务)上的一个双关语。
没有错误,没有压力-在不破坏生活的情况下创建可改变生活的软件的分步指南
当没有人关心软件质量时,您就无法提高编程技能。
后来,Unics更改为UNIX。 UNIX是用汇编语言编写的,尽管它非常适合机器学习,但对于人类来说却是一个难题。 (什么是机器学习?请阅读机器学习101来查找。)
为了解释和操作UNIX,使用了Fortran和B语言。正是在这里,开发C语言的想法开始在其创建者的脑海中形成。
查看此信息图,其中详细介绍了编程语言的历史。
为什么开发C
在UNIX的创建者面临的操作系统挑战中,B语言是一种有用的语言。 B语言是马丁·理查兹(Martin Richards)从BCPL获得的。如前所述,UNIX是用汇编语言编写的。为了在UNIX中执行甚至很小的操作,也需要编写许多页面的代码。
B解决了这个问题。与汇编语言不同,B在UNIX中只需很少的代码行即可完成任务。仍然有很多B无法做到的。鉴于需求的快速变化,期望B提供更多的服务。
例如,B无法识别数据类型。即使使用B,数据类型也用机器语言表示。 B也不支持数据结构。
很明显,有些事情必须改变。因此,Ritchie和他的同事克服了这些限制。 C语言是在1971-73年间开发的。请注意,尽管存在种种局限性,但C却源于B,因为C保留了B提供的很多功能,同时还增加了诸如数据类型和数据结构之类的功能。
之所以选择名称C是因为它继承了B。在早期,C的设计就牢记UNIX。 C用于执行任务和操作UNIX。因此,出于性能和生产力的考虑,许多UNIX组件都是用汇编语言用C重写的。例如,UNIX内核本身于1973年在DEC PDP-11上进行了重写。
Ritchie和Kernighan以一本名为“ The C Programming Language”的书的形式记录了他们的创作。尽管Kernighan声称他没有参与C的设计,但他还是著名的“ Hello World”程序和许多其他UNIX程序的作者。
C的演变
随着时间的流逝,C开始在个人计算机中用于开发软件应用程序和其他目的。
第一次更改(即使只有很小的更改)是在1983年美国国家标准协会(ANSI)组建了一个标准化C的委员会时进行的。在对该语言进行审查之后,他们对其进行了一些修改,使其也与其他程序兼容因此,新的ANSI标准于1989年问世,被称为ANSI C或C89。国际标准化组织(ISO)也为C的标准化做出了贡献。
随着时间的流逝,C不断发展,因为它在其丰富的功能集中增加了一些重要的功能,例如内存管理,功能,类和库。 C正在世界上一些最大和最杰出的项目和产品中使用。
C还影响了多种语言的开发,例如AMPL,AWK,csh,C ++,C-,C#,Objective-C,Bit C,D,Go,Java,JavaScript,Julia,Limbo,LPC,Perl,PHP,派克,处理,Python,Rust,Seed7,Vala和Verilog。 (要了解有关语言的更多信息,请参阅构建Internet的5种编程语言。)
您使用Microsoft Windows吗?然后要感谢C,因为Windows开发主要是用C进行的。MacOS,Linux,Android,iOS和Windows Phone也是如此,因此几乎所有现代操作系统都基于C。它也广泛用于嵌入式系统中。 ,例如在汽车,智能电视和无数的物联网(IoT)设备中发现的产品。 (阅读物联网(IoT)对不同行业的影响。)
C的所有应用程序太多了,无法在此处列出,但其他一些应用程序包括:
- 开发编译器,数据库和电子表格
- 电脑和手机游戏
- 更新UNIX内核
- 评估数学方程式
- 设计网络设备
我们学到了什么
就像世界上大多数最伟大的发明一样,C的产生是出于必然。情况和问题提供了启发。但是,与现在已经绝种或几乎绝种的许多编程语言不同,C经受了时间的考验并蓬勃发展。
现在有些语言被归类为小众语言-例如,Fortran现在主要仅用于工程目的,而COBOL则努力保持相关性。 C不仅保持了相关性,而且还为许多其他编程语言的开发提供了启发。
即使是强大的技术浪潮,例如物联网,人工智能和自动化,也未能使C脱颖而出。看来,这种语言在未来很长一段时间内也将继续与我们同在。 (读
机器学习的5大编程语言。)