C语言简史

C语言的历史
二十世纪六十年代中叶的美国,麻省理工学院、AT&T贝尔实验室、通用电器为GE-645大型机研发一个叫Multics的分时操作系统。由于开发进程不顺,且该操作系统也越发臃肿和复杂,目标过于庞大,功能过于复杂,MULTICS项目开始迷失,研发人员越来越不明确这个项目需要如何走下去。最终导致隶属 AT&T公司的贝尔实验室(BellLabs)逐渐退出了这个项目。[三个知名的公司是美国电话及电报公司(American Telephone and TelegraphInc.;AT&T)、通用电器公司(General Electrics;G.E.)、麻省理工学院(Massachusetts Institute ofTechnology;MIT)]
在联合开发期间,肯·汤普森抽空开发了一款自娱自乐的小游戏:太空旅行(Space Travel)。有了游戏的程序代码,要想运行起来,玩这款小游戏,就必须要电脑、系统,把游戏程序安装上去。鉴于在GE-645大型机上玩游戏有悖职业道德,于是肯·汤普森找到了一台实验室的闲置小型机,接下来就是安装系统了。
当时的操作系统大都并不通用,Multics能在GE-645上跑,但是在这台小型机上却无法正常运行。于是肯·汤普森决定发挥之前联合开发操作系统的技术经验,自己给这台小型机写一个操作系统。并且在分享想法后后,感兴趣的同事丹尼斯·里奇一起参与了进来。
1969年,贝尔实验室的肯·汤普森(Ken·Thompson)和丹尼斯·里奇(Dennis Ritchie)在实验室的闲置小型机上开发出了一个极简版本的Multics系统,原来的系统名称中的前缀Multi是大,新开发出来的系统是极简版,于是他们就取了意义相反(Uni是小的意思)的前缀Uni,最终命名为UNIX操作系统。(如今苹果电脑的操作系统MacOS、制霸服务器领域的操作系统Linux、安卓系统等的发展都与Unix有极其紧密的关系)
在开发出Unix系统后,他们把眼光从简单的小游戏转向了这个更有开发趣味的操作系统,于是他们开始了对这个系统的优化。
起初他们是通过“对机器指令直接翻译”的底层的汇编语言来编写这个系统。底层语言开发,抽象程度低下,迭代开发的编程效率低下,任务琐碎繁杂。他们急需一个抽象层次高一些的工具来提高工作效率。
肯·汤普森找到了一个叫Fortran的编程语言,深入研究了一下之后,他发现自己并不喜欢这个编程语言,没过多久就把它给放弃了。转而看上了一种叫BCPL的编程语言。
在BCPL语言的基础上,肯·汤普森做了一下简化,去掉了一些用不到的东西,并写了一个可以把简化后的BCPL代码翻译成汇编代码的编译器。他给这个简化后的BCPL语言作为新语言,取名叫B语言。
在用了一段时间B语言之后,肯·汤普森觉得这个B语言还不是特别好用。因为B语言不能充分发挥实验室那台闲置的小型机的特性。
鉴于那个时候计算能力比较昂贵,秉着“让计算机充分发挥出它的性能”,丹尼斯·里奇提出自己来对B语言进行优化改写。丹尼斯·里奇在B语言基础上改造出来的这个语言就是早期的C语言。
1978年,布莱恩·柯宁汉(Brian·Kernighan)和丹尼斯·里奇,写了一本C语言的教材:《C程序设计语言》(TheCProgramming Language)。就是著名的也就是著名的K&R,我国程序员往往称之为黑皮书,薄薄的一本书,可谓经典中的经典。
由此可见,C语言的历史就是Unix的历史。它们同生共长,出自同样的发明人。Unix操作系统以及它的衍生系统如 MacOS、Linux,写起C语言来那么方便也就不奇怪了。只要计算机体系架构不变,c语言就会长盛不衰。

posted on 2026-10-09 19:07  Tobetop  阅读(3)  评论(0)    收藏  举报

导航