C语言是一种通用的程序设计语言,由于它很适合用来编写编译器、操作系统,并进行嵌入式系统开发,因此被称为“系统编程语言”,但它同样适用于编写不同领域中的应用程序。
C语言是一种被广泛应用的计算机高级程序设计语言,是在B语言的基础上发展起来的,它经历了不同的发展阶段。
早期的系统软件设计均采用汇编语言,例如,大家熟知的UNIX操作系统。尽管汇编语言在可移植性、可维护性和描述问题的效率等方面远远不及高级程序设计语言,但是一般的高级语言有时难以实现汇编语言的某些功能。
那么,能否设计出一种集汇编语言与高级语言的优点于一身的语言呢?这种思路促成了UNIX系统的开发者(美国贝尔实验室的Ken Thompson)于1970年设计出了既简单又便于硬件操作的B语言,并用B语言写了第一个UNIX操作系统,这个操作系统先在PDP-7上实现,1971年又在PDP-11/20上实现。
B语言的前身是BCPL(Basic Combined Programming Language),它是英国剑桥大学的Martin Richards在1967年基于CPL语言设计的,而CPL语言又是在1963年基于ALGOL 60产生的。
1972~1973年,贝尔实验室的D. M. Ritchie在B语言的基础上设计出C语言,该语言弥补了B语言过于简单、功能有限的不足。
1973年,Ken Thompson和D. M. Ritchie合作,将90%以上的UNIX代码用C语言改写。随着改写UNIX操作系统的成功,C语言也逐渐被人们接受。
1987年以后,C语言已先后被移植到大、中、小、微型机上,并独立于UNIX和PDP,从而得到了广泛应用。
1978年,B. W. Kernighan和D. M. Ritchie合写了一本经典著作——《C程序设计语言》( The C Programming Language ,中文版、影印版均已由机械工业出版社引进出版),它奠定了C语言的基础,被称为标准C。
1983年,美国国家标准学会(ANSI)根据C语言问世以来的各种版本对C的发展和扩充制定了新的标准,称为ANSI C。1987年又公布了新标准,称为87 ANSI C。目前流行的多种版本的C语言编译系统都是以此为基础的。
在ANSI标准化后,C语言的标准在相当一段时间内都保持不变,直到20世纪90年代才进行了改进,这就是ISO 9899:1999(1999年出版)。这个版本就是通常提及的C99。它于2000年3月被ANSI采用。
由于C语言是面向过程的结构化和模块化的程序设计语言,当处理的问题比较复杂、规模庞大时,就显现出一些不足,由此,面向对象的程序设计语言C++应运而生。C++的基础是C,它保留了C的所有优点,增加了面向对象机制,并且与C完全兼容。绝大多数C语言程序可以不经修改直接在C++环境中运行。