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