1.3.4 C编程语言
1969年,Ken Thompson用PDP-7汇编语言编写了UNIX操作系统。汇编语言是一种计算机相关语言,即采用汇编语言编写的程序只能运行在一种计算机上,或者最多是一个系列的计算机上。因此,最初的UNIX操作系统很难移植到其他计算机上,即它是不可移植的。
为使UNIX可移植,Thompson在BCPL语言的基础上,开发了一种计算机无关的编程语言——B语言。Dennis Rithie通过修改B语言开发了C语言,并于1973年,与Thompson合作,用C语言重写了UNIX系统。重写后的操作系统可很容易地移植到其他计算机上。
C语言最初就是应用在UNIX系统中,这一起源是C成为一个如此强大工具的有力证明。C语言可用来开发计算机无关的程序;程序员很容易就可把用C语言设计的可移植程序移植到任何一个具有C语言编译器的计算机上运行;C程序还可以经编译得到高效代码;随着C语言的出现,程序员们可使用C语言来编写运行较好的程序,而不必非要使用汇编语言(尽管使用汇编语言可以得到更高效的代码,但采用高级语言开发程序会更快些。)。
C语言是一种优秀的系统编程语言,可用来开发编译器和操作系统;C语言是一种结构化很强的语言,具有低级语言的特征,允许程序员对位和字节进行操作,这在开发操作系统过程中是很必要的;同时,C语言也具有高级语言的特征,可实现高效的模块化编程。
在20世纪80年代晚期,美国国家标准协会(American National Standards Institute,ANSI)定义了C语言的标准版本,这一版本通常被称为ANSI C或者是C 89(即该版本发布的时间)。十年后,发布了C99版本,GNU Project中的C编译器(称为gcc)对该版本的绝大部分都支持。而C语言的最初版本通常被称为Kernighan & Ritchie(K&R)C,该名称是以第一本描述C语言书的作者名字命名的。
Bjarne Stroustrup是贝尔实验室的一名研究员,他在C语言的基础上开发了面向对象的编程语言——C++。由于目前许多编程人员更倾向于面向对象的编程,所以在许多情况下,人们常常会选择C++语言。GNU Project中的C编译器和C++编译器(g++)都是Linux操作系统中的一部分。