第53章:C语言简史

      这段历史,要从20世纪60年代中叶的美国说起:当时,三方大佬,麻省理工学院、AT&T贝尔实验室、通用电气准备为 GE - 645大型机开发一个叫 Multics 的分时操作系统,可是开发并不尽如意,这个操作系统逐渐变得过于臃肿和复杂。因此,贝尔实验室渐渐退出了这个项目

      可是事情并没有这么简单,在贝尔实验室还没退出这个项目之前,它的一个名叫肯.汤姆森的开发人员,在工作之余,自己开发了一款小游戏,叫太空旅行(Space Travel),有游戏就要拿来玩啊,想玩游戏就得有电脑啊,有电脑得有操作系统啊

      聪明的观众是不是立即推 GE - 645大型机上不是有 Multics 系统吗?从那上边玩啊,哎,你tn的还真是个天才,拿公司的电脑玩游戏不说,那可是大型机,这就像你想在超级计算机上打 LOL 一样。所以,我们的肯.汤姆森同志需要一个性价比更高的解决方案:他的目标转向了一台实验室没人用的小型机

      有机器了,可是还没有系统啊(当时的操作系统大都是不通用的,也就是说,Multics 也许能跑在 GE - 645上,但是在这台小型机上却无法正常运行),肯.汤姆森也是个狠人,他决定自己给这台小型机写一个操作系统,等等,操作系统是说写就能写的吗?肯.汤姆森是神仙?首先,肯.汤姆森确实是神仙,而且,别忘了他是干什么的,他本来不就是个参与操作系统开发的工程师吗,再说了,他还叫上了他的好基友丹尼斯.里奇,也是一个贝尔实验室的开发人员(神仙+1)

      终于,在1969年,他们俩完成了这个极简版的 Multics 操作系统(在英文中,词缀 Multics 是多、复杂的意思,于是他们就取了意义相反的 Uni,给系统取名 UNIX),那一年,肯.汤姆森26岁,丹尼斯.里奇28岁

      UNIX 是怪物一样的存在,如今苹果电脑的操作系统 MacOS,制霸服务器领域的操作系统 Linux,以及安卓等等的发展,都与 UNIX 有极其紧密的关系。这后来,他们两个根本不关心那个什么太空旅行的游戏了,因为继续做这个 UNIX 操作系统显然更有搞头

      起初,他们是用汇编语言来写的这个操作系统,汇编语言是对机器指令的直接翻译,是很底层的语言,这就像你想盖一座房子,还要自己烧砖一样,这就叫抽象程度低。这是很累、很烦人而且不可理喻的,即使是一个建筑工人,让他去烧砖也是很无理的,更何况他们并不相当于建筑工人,而相当于房地产开发商,所以急需一个抽象层次高一些的工具来提高工作效率

      肯.汤姆森找到了一个叫 Fortran 的编程语言,可他并不是很喜欢这个编程语言,没过多久就把它给放弃了,转而看上了一种叫 BCPL 的编程语言,他简化了一下 BCPL,去掉了一些用不到的东西,并写了一个可以把简化后 BCPL 代码翻译成汇编代码的编译器,他给这个新语言取名叫 B 语言

      用了一段时间之后,发现这个 B 语言还不是特别好用,因为它不能充分发挥他们实验室那台没人用的小型机的特性,话说早期的程序员都有一个习惯:就是让计算机充分发挥出它的性能。毕竟那个时候计算能力比较昂贵,这个时候丹尼斯.里奇说:不要紧的,让我给你改一改你的 B 语言,想必故事的进展,大家也能猜到了,丹尼斯.里奇改造出来的这个语言就是早期的 C 语言,后来在1978年,布莱恩.柯宁汉和丹尼斯.里奇写了一本 C 语言的教材,叫做《C程序设计语言》(The C Programming Language),也就是著名的 K&R,我国程序员往往称之为“黑皮书”,这也是我们学 C 语言时用的书,薄薄的一本书,可谓经典中的经典

      不禁感慨,大家都是程序员,除了都是起名小能手之外,人家还能发明操作系统,发明编程语言,大神就是大神,至此 C 语言的历史基本就讲完了。因此,我们会发现:C 语言的历史,就是 UNIX 的历史,这俩东西肯定是同生共长的,毕竟都出自这两位大神之手,所以,UNIX 操作系统以及它的衍生系统,如:MacOS、Linux,写起 C 语言来那么方便也就不奇怪了吧

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值