
1.3.2 C语言的发展与特点
1.C语言的发展历史
C语言的发展颇为有趣,它的原型是ALGOL(ALGOrithmic Language)60语言。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”,意思是将CPL语言煮干,提炼出它的精华,并且他用B语言写了第一个UNIX操作系统。
1973年,美国贝尔实验室的D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
2.C语言的主要特点
也许,在此讨论C语言的主要特点,并不能给读者带来切身的感受,但是,希望读者能从下面的叙述中对C语言的特点有一个基本的了解,并在随后的学习中不断加深对它们的理解。
如果用最简单的语言来概括,C语言的优点是简洁、灵活、表达能力强,产生的目标代码质量高、可移植性好。具体讲,有以下几点:
(1)C语言同时具备了高级语言和低级语言的特征。高级语言应该具备的优点C语言都有,例如可读性好、容易记忆、再移植性强等,同时C语言还提供了某些接近于汇编程序的功能,如地址处理、二进制位运算以寄存器存放变量等。因此,有人认为C语言是中级语言。C语言适合编写系统程序和各种工具。
(2)C语言是结构化程序设计语言,具有结构化程序设计所要求的控制语句,如条件语句if,循环语句for、while,do…while等。
(3)C语言支持模块化程序设计。C语言的程序是由函数构成的,每个函数可以单独编写和调试。因此,遇到大型程序,程序员可以分别编写不同的模块,这使得管理和调试工作变得简单和方便,并且可以实现软件重用,即重复使用那些经常需要使用的程序模块。
(4)C语言具有丰富的数据类型。C语言支持各种高级语言普遍使用的基本数据类型,并允许用基本数据类型构造复杂数据类型。
(5)C语言的运算符种类多、功能强大。
(6)C语言的基本组成部分紧凑、简洁,关键字少。
(7)C语言有大量标准化的库函数。这些库函数不但包括了各种数学计算函数,还有用于输入/输出的库函数以及系统函数,给程序员编写程序带来了极大的方便。
(8)生成代码质量高。C语言与汇编语言生成的代码相比,前者只比后者低10%~20%。
(9)具有特别良好的可移植性,应用性广。可在许多软件平台和硬件平台上应用。
任何事物都不是十全十美的,C语言也有一定的缺陷,了解C语言的缺点,有助于在编写程序的时候扬长避短。具体讲,有以下两点:
(1)C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
(2)如果不加以特别注意,C程序的安全性将会降低。例如,如果对指针的使用没有适当的限制,导致指针设置错误,可能引起内存中的信息被破坏,如果经常出现这种错误,极有可能导致系统崩溃。