
译者序
C语言的发展最早可以追溯到1960年出现的ALGOL 60。可以说,ALGOL 60是C语言的祖先,但是ALGOL 60离硬件比较远,不适合用来编写系统软件。1963年,剑桥大学推出了CPL(Combined Programming Language)。CPL对ALGOL 60进行了改造,更接近硬件一些,但是规模比较大,难以实现。1967年,剑桥大学的马丁·理查兹对CPL进行了简化,在保持CPL的基本优点的基础上推出了BCPL(Basic Combined Programming Language)。
1970年,美国AT&T公司贝尔实验室的研究员肯·汤普森以BCPL为基础,设计出了非常简单而且很接近硬件的B语言(取BCPL的首字母)。B语言是一种通用程序设计语言,但它过于简单,且功能有限,所以没能流行起来。肯·汤普森用B语言做了一件很重要的事情,一直影响至今,即他用B语言写出了世界上第一个操作系统——UNIX操作系统。
1971年,贝尔实验室的丹尼斯·里奇加入了肯·汤普森的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更加成熟。
1972年,丹尼斯·里奇在B语言的基础上最终设计出了一种新的语言,他以BCPL的第二个字母作为这种语言的名字,即C语言。C语言既保持了BCPL和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单、无数据类型等)。最初设计C语言只是为了提供一种可以描述和实现UNIX操作系统的工作语言。1973年,肯·汤普森和丹尼斯·里奇两人合作把UNIX中90%以上的代码用C语言进行改写,得到了UNIX第5版。
后来,C语言历经了多次改进,但主要还是在贝尔实验室内部使用。直到1975年,UNIX第6版公布以后,C语言的突出优点才引起人们的普遍关注。1975年,不依赖于具体机器的C语言编译文本(可移植C语言编译程序)出现了,将C语言移植到其他机器上所需做的工作因而大大简化,这推动着UNIX操作系统迅速在各种机器上实现。而随着UNIX的广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、小和微型计算机上,独立于UNIX和PDP计算机了。
现在,C语言已风靡全球,成为世界上应用最广泛的计算机语言之一。许多系统软件和实用的软件包,如Microsoft Windows等,都是用C语言编写的。
无论你是刚开始使用C语言还是已经有了很丰富的经验,通过阅读本书,你的C语言编程技能都将提升到一个新的高度。这本非常全面的指南是按级别来组织的,这使你很容易找到最适合自己的章节,从而更快获得更大的收益。
本书作者Jens Gustedt自1998年以来一直是法国国家信息与自动化研究所(INRIA)的高级科学家,工作领域包括算法、科学实验、粗粒度并行模型和分布式锁定。
在本书中,Jens Gustedt将教你使用这种久经考验的语言编写相关程序所需的技能和特性,应用范围包括Linux和Windows、设备驱动程序、Web服务器和浏览器、智能手机等。
由于翻译水平和时间有限,译文难免存在错误和疏漏,恳请读者批评指正。
希望通过阅读此书,你的C语言编程技巧能得到进一步的提升,从而可以从容面对当前所面临的一些挑战!
刘红泉
2021年2月于北京