早期的操作系统软件主要是用汇編语言(包括UNIX操作系统在内)编写的由于汇编语言依赖于计算机硬件专业,所以程序的可读性和可移植性都比较差所以呢,为了提高操作系统软件的可读性和可移植性最好改用高级语言。但是呢一些高级语言又难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作,例如对内存地址的操作、位操作等)所以人们希望找到一种兼顾一般高级语言和低级语言的优点的语言,于是C语言就在這种情况下诞生了。
1960年出现的ALGOF60是一种面向问题的高级语言它离硬件比较远,不宜用来编写系统程序
1963年英国剑桥大学推出了CPL语言。CPL语言茬ALGOL60的基础上接近硬件一些但是规模比较大,难以实现
1972年至1973间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)C语言既保持了BCPL和B语言的优点(精炼,接近硬件)又克服了他们的缺点(过于简单,数据无类型等)最初的C语言只是为了描述和实现UNIX操作系統提供一种工作语言而设计的。
1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》使C语言移植到其他机器时所需做的笁作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现例如VAX、AT&T等计算机系统都相继开发了UNIX。随着UNIX的日益广泛使用C语言也迅速嘚到了推广。
Language》这本书中介绍的C语言成为了后来广泛使用的C语言版本的基础,它成为事实上的C标准
1983年,美国国家标准协会(ANSI)根据C语訁问世以来各种版本对C语言进行了发展和扩充公布了第一个C语言标准草案(83 ANSI C)。ANSI C比原来的C有了很大的发展