C语言的产生发展及特点

C语言广泛应用与开发对性能要求较高的系统.如操作系统嵌人式系统、实时系统和通信系统

C语言是国际上广泛流行的计算机高级语言。

C语言的祖先是BCPL语言。1967年英国剑桥大学的Martin Richards推出了没有类型的BCPL(Basic Combined Programming Language)语言。1970年美国AT&T贝尔实验室的Ken Thompson以BCPL语言为基础,设计出了很简单且很接近硬件的B语言(取BCPL的第一个字母)。但是B语言过于简单,功能有限。1972—1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。C语言既保持了BCPL和B语言的优点(精炼,接近硬件),又克服了它们的缺点(过于简单、无数据类型等),C语言的新特点主要表现在具有多种数据类型(如字符、数值、数组、结构体和指针等)。开发C语言的目的在于尽可能降低用它所写的软件对硬件平台的依赖程度,使之具有可移植性。

最初的C语言只是为了描述和实现UNIX操作系统提供一种工作语言而设计的。1973年Ken Thompson和D.M.Ritchie合作把UNIX的90%以上用C语言改写,即UNIX第5版(原来的UNIX操作系统是1969年由美国的贝尔实验室的Ken Thompson和D.M.Ritchie开发成功的,是用汇编语言编写的)。随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,C语言先后移植到大、中、小和微型计算机上。C语言便很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。

以UNIX第7版中的C语言编译程序为基础,1978年Brian W.Kernighan和Dennis M.Ritchie合著了影响深远的名著The C Programming Language,这本书中介绍的C原因成为后来广泛使用的C语言版本的基础,它是实际上第一个C语言标准。1983年美国国家标准协会(ANSI)成立了一个委员会,根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C语言标准草案。ANSI C比原来的C有了很大的发展。Brian W.Kernighan和Dennis M.Ritchie在1988年修订了他们的经典著作The C Programming Language,按照即将公布的ANSI C新标准重新写了该书。1989年ANSI公布了一个完整的C语言标准—ANSI X3.159—1989(常称ANSI或C 89)。1990年国际标准化组织ISO接受C89作为国际标准ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。

1995年ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC9899/AMD1:1995)”。1999年ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,命名为ISO/IEC9899:1999。2001年和2004年先后进行了两次技术修正,即2001年的TC1和2004年的TC2。ISO/IEC9899:1999及其技术修正被称为C99,C99是C89的扩充。

应该注意到,目前由不同软件公司所提供的一些C语言编译系统并未完全实现C99建议的功能,它们多以C89为基础开发。大家应该了解到自己所使用的C语言编译系统的特点。初学者所用到的初步编程知识基本上在C89的范围内,因此使用目前的C编译系统仍然可以满足对初学者的教学需要。在今后进行实际软件开发工作时,应注意使用能在更大程度上实现C99功能的编译系统。

C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。因此C语言问世以来得到迅速推广。自20世纪90年代初,C语言在我国开始推广以来,学习和使用C语言的人越来越多,成为学习和使用人数最多的一种计算机语言,绝大多数理工科大学都开设了C语言程序设计课程。掌握C语言成为计算机开发人员的一项基本功。

C语言有以下一些主要特点:

1)、语言简洁、紧凑,使用方便、灵活。C语言一共只有37个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。C语言程序比其他许多高级语言简练,源程序短,因此输入程序时工作量少。

实际上,C是一个很小的内核语言,只包括极少的与硬件有关的成分,C语言不直接提供输入和输出语句、有关文件操作的语句和动态内存管理的语句等(这些操作是由编译系统所提供的库函数来实现的),C的编译系统相当简洁。

2)、运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值和强制类型转换等都作为运算符处理,从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

3)、数据类型丰富。C语言提供的数据类型包括:整型、浮点型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点类型、超长整型(long long)和布尔类型(bool)等。尤其是指针类型数据,使用十分灵活和多样化,能用来实现各种复杂的数据结构的运算。

4)、具有结构化的控机语句(如if...else语句、while语句、do...while语句、switch语句和for语句)。用函数作为程序的模块单位,便于实现程序的模块化。C语言是完全模块化和结构化的语言。

5)、语法限制不太严格,程序设计自由度大。例如,对数组下标越界不进行检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如整型量与字符型数据以及逻辑型数据可以通用。一般的高级源语法检查比较严,能检查出几乎所有的语法错误,而C语言允许程序编写者有较大的自由度,因此放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖C语言编译程序查错。

6)、C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。C语言的这种双重性使得它既是成功的系统描述语言,又是通用的程序设计语言。

7)、用C语言编写的程序可移植性好。由于C的编译系统相当简洁,因此很容易移植到新的系统。而且C编译系统在新的系统上运行时可以直接编译“标准链接库”中的大部分功能,不需要修改源代码,因为标准链接库是用可移植的C语言写的。因此几乎在所有的计算机系统中都可以使用C语言。

8)、生成目标代码质量高,程序执行效率高。

C原来是专门为编写系统软件而设计的,许多大的软件都用C语言编写,这是因为C语言的可移植性好和硬件控制能力高,表达和运算能力强。许多以前只能用汇编语言处理的问题后来可以改用C语言来处理了。目前C的主要用途之一是编写“嵌入式系统系统程序”。由于具有上述优点,使C语言应用面十分广泛,许多应用软件也用C语言编写。

当你学完C语言之后,再来看C语言的上述这些特点,你会有更深的体会。


发布日期:

所属分类: 编程, 编程语言 标签: