作为一名电子信息专业的学生,我从大一开始接触编程语言。经历了2年多的程序设计生涯,从C语言到C++,再到C#,个人感触颇多。故写篇博文细数一下C系列的这几个主流语言的发展历程。
首先是C语言。C语言堪称用的最多的语言了,也是现行很多语言的基础和前身。早期的操作系统软件主要是用汇编语言编写的(包括UNIX操作系统在内)。由于汇编语言依赖于计算机硬件(具体说来是依赖于CPU,学过硬件系统的童鞋们可以发现,单片机的汇编和微机的有明显不同),程序的可读性和可移植性都比较差,所以为了提高系统软件的可读性和可移植性,C语言应运而生了。
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60(图灵奖啊)。1960年出现的AOGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国剑桥大学退出了CPL(combined programming language)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的Martin Richard对CPL语言做了一些简化,推出了BCPL(basic combined programming language)语言。1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言(取BCPL的第一个字母),并用B语言编写了第一个UNIX操作系统,在PDP 7(DEC公司生产的电子计算机)上实现。1971年在PDP 11/12上实现了B语言,并编写了UNIX操作系统,此时的B语言过于简单,功能有限。1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精炼,接近硬件),又克服了它们的缺点(过于简单,无数据类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,Ken Thompson和D.M.Ritchie合作把UNIX的百分之九十以上用C语言改写(即UNIX第5版。原来的UNIX操作系统是1969年由贝尔实验室的Ken Thompson和D.M.Ritchie开发成功的,是用汇编语言编写的)。
后来,C语言多次做了改进,但主要还是在贝尔实验室内部使用。直到1975年UNIX第6版发布以后,C语言的突出优点才引起人们的普遍主义。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C语言一直到凄然机器时所需做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现,例如VAX(DEC),AT& T(美国电话电报公司)等计算机都相继开发了UNIX(商业运作会大大加速某项技术的研发)。随着UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一堆孪生兄弟(当然了,开发者都是同样的人),在发展中相辅相成。1978年以后,C语言先后一直到大、中、小、微型计算机上,已独立于UNIX 和PDP了。 在经过几十年的不断成熟,C语言就成了现如今我们看到的模样啦~~
注:其中有部分文字转自谭浩强老师的《C程序设计》。