代码揭秘
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.1 C语言的历史

C语言的原型可以追溯到ALGOL 60语言(也称为A语言)。ALGOL语言是计算机发展史上首批产生的高级语言。1960年1月,图灵奖获得者艾伦·佩利(Alan J. Perlis)在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了《算法语言ALGOL 60报告》,确定了程序设计语言ALGOL 60。ALGOL 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。但是ALGOL 60是一种远离硬件的语言,因此不适合用来编写系统程序。

1963年,剑桥大学将ALGOL 60语言发展成为CPL (Combined Programming Language)语言。1967年,剑桥大学的Matin Richards对CPL语言进行了简化,于是产生了BCPL语言(Basic Combined Programming Language)。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”,并且Ken Thompson还用B语言写了第一个UNIX操作系统。但是B语言的缺点是太过简单,功能有限。

到了1973年,美国贝尔实验室的D. M. Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。同年,D. M. Ritchie和K. Thompson两人合作将UNIX的绝大部分用C语言进行了重写,这就是UNIX第5版。C语言自诞生那天起就注定是不平凡的,它从B语言那里继承了精简且接近硬件的优点,但又在此基础上进行了充实,使得功能上更加完善。

C语言的成长与UNIX具有密切的关系,C语言真正引起世人注意的是在UNIX第6版发布之后。为了推广UNIX操作系统,1977年,D. M. Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》,即著名的ANSI C。

1978年,美国电话电报公司(AT&T)贝尔实验室正式发布了C语言。同时由B. W. Kernighan和D. M. Ritchit合著的《The C Programming Language》一书完成,该书所介绍的C语言成为后来被广泛使用的C语言版本的基础。后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C语言标准,于1983年发布,通常称之为ANSI C。

1987年,ANSI又公布了C语言的新标准——87 ANSI C。1988年,随着微型计算机的普及,C语言出现了许多版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。直到1990年,国际标准化组织(ISO)接受了87 ANSI C为ISO C的标准,目前流行的C编译系统都是以此为基础的。

C语言的产生过程如图1-11所示。

图1-11 C语言的产生过程