微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

C语言的前世今生

2016-08-24 23:51 围城莫


江山代有才人出,

各领风骚数百年。

总有那么几个“老不死”的,

一直占据着那个位置。


在编程语言界,从最开始的机器语言(0,1代码),到现在的编汇语言,高级语言,这两种形式的编程语言。编程语言正在不断的发展,但随着发展也有新的语言代替不再适用的旧语言。而在这之中,有一个语言的地位,是没法被撼动的,那便是C语言。



编程语言之间的竞争一天也没能停歇,长江后浪推前浪,一代更比一代强。它们之中只有屈指可数的少数能够被市场接纳,成为程序员们日日夜夜的伴侣。



近年来,谷歌一直致力于开发出自己的编程语言以取代当今世上最常用的C、C++和JavaScript。在系统语言方向,谷歌的Go语言能够为用户在数据中心内建立大型软件提供更多的便捷,有望取代C语言和C++的地位;而在网络开发方面,谷歌希望凭借Dart取代JavaScript。



但只有C语言依旧还存活在编程语言中,并继续发挥着很大的作用。那这是为什么呢?它又是从何而来?



C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。


1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。



20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏Space Travel。他背着老板,找到了台空闲的机器PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为UNIX。



1970年,Ken Thompson以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。


1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。



1972年,D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。


1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个Space Travel,一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。




在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha、SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。


1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。


1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商、编译器及其他软件工具生产商、软件设计师、顾问、学术界人士、C语言作者和应用程序员组成。



1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称C89,不过人们也习惯称其为ANSI C。


C89在1990年被国际标准组织ISO(International Organization for Standardization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为C90。


1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称C99。



2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为C11。


这就是C语言的前世今生,这么久以来,C语言的地位从来没有被撼动过,作为最底层的基础开发语言,它显得尤为重要。伴随着编程语言的不断发展壮大,尽管会有新的更好的语言来代替旧的语言,但是,C语言作为基础,是基本不可能被替换的。一如工程师设计房子,都会做好蓝图,而C语言就是编程语言这座大厦的蓝图。你说,没有了C语言,这房子还能建起来吗?



我仿佛看见C语言活蹦乱跳的在那说,我就是喜欢看着你讨厌我,却又干不掉我的样子。你说它贱不贱,贱!那你还喜欢它吗?喜欢!那不就结了。

程序员e家

programmer_clubs


程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!


▲长按二维码“识别”关注


了解野狗,点击阅读原文“报名”

 
程序员之家 更多文章 恐怖份子中的黑客 你愿意做一匹狼还是一只哈士奇 80岁老头传授独家秘方,隔壁老王乐疯了。。 别人眼中的你 你的资产有多少?
猜您喜欢 第一部分::任务3:HTML入门-实现一个计算器 使用Icinga2监控服务器带宽以及内存占用 #技术蛋糕#C++拷贝构造函数总结 平哥又出动了,思源科安你看行不? 【互联网金融】央行探路P2P网贷行业监管