C语言开发手册
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 C语言发展历史

1946年,美国宾夕法尼亚大学研制成功了世界上第一台电子数字计算机ENIAC。该计算机运算速度为5000次/s,内部使用了18000多个电子管和1500多个继电器,占地面积150m2,重约30吨。它的诞生引发了20世纪最深刻的一场革命。计算机的诞生所带来的最重要的一个技术方向便是计算机程序设计。

最初,人们采用机器语言对计算机进行编程,从而完成某些计算任务。因为,计算机直接认可的就是机器语言。但是,机器语言晦涩难懂,开发难度大,直接影响了程序员的开发。随后,便诞生了汇编语言。汇编语言和机器语言一样能够直接对计算机硬件操作,但是比机器语言更容易记忆和理解。

由于计算机程序规模越来越大,汇编语言已经不能胜任程序开发,这个时候产生了高级语言。高级语言比汇编语言简练,容易阅读,而且可以做到模块化,这就大大降低了计算机程序开发的难度,缩短了程序开发时间,常见的如Basic、Fortran、Pascal和C等。

20世纪60年代,第一个结构化程序设计语言ALGOL语言问世。ALGOL语言也称为A语言。在此后的几年内,接着产生了许多新的程序设计语言,C语言便是其中之一。C语言的原型是ALGOL 60语言,即是在A语言的基础之上逐步发展起来的。

1963年,剑桥大学的科学家将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,同样是在剑桥大学,Martin Richards对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson对BCPL语言进行了修改,并称之为“B语言”。世界上第一个UNIX操作系统便是Ken Thompson用B语言编写的。

1972年,美国贝尔实验室的Demis M.Ritchie在B语言的基础上做了进一步的发展,最终设计出了一种新的语言。为了和之前的进行区别,他取BCPL语言的第二个字母作为这种语言的名字,也就是C语言。这就是最早、最原始的C语言。

1977年,为了使UNIX操作系统推广,同样是美国贝尔实验室的Dennis M.Ritchie,发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。这对C语言的发展有着重要的指导意义。

1978年,美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。遗憾的是,在《K&R》中并没有定义一个完整的标准C语言。

1983年,美国国家标准学会(American National Standards Institute,简称ANSI)在《K&R》基础上制定了一个C语言标准,通常称之为ANSI C。随后,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。

1987年,美国国家标准学会(ANSI)为C语言制定了一套ANSI标准——87 ANSI C,成为现行的C语言标准。从而改变了C语言不统一的情况。

1989年,国际标准化组织ISO(International Standard Organization)接受了87 ANSI C为ISO C的标准。鉴于ISO的权威性,ANSI于1990年初重新采纳ISO C,合称为ANSI/ISO Standard C。通常,1989年的C标准称为C89。

1994年,开始C语言标准的修订工作,并于1999年发表,这就是(ISO9899-1990)标准。这个版本的标准,常称之为C99。C99被ANSI于2000年3月采用。

除了C语言的标准外。对于程序员来说,直接使用的则是C语言的编译系统。目前流行的C语言编译系统大多是以ANSI C为基础进行开发的。但是,不同版本及不同公司推出的C语言编译系统,所实现的语言功能和语法规则略有差别。主要是对ANSI C做了一些扩充,使之更加方便、完美。