言,即用来写系统软件,也可用来写应用软件。C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。1960年出现的 ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序,1963年英 国的剑桥大学推出了CPL(Combined Programming Language)语言。CPL语言在ALGOL 60的基 础上...
编程语言比如C语言、JAVA是怎么被设计出来的?设计的过程又是怎样的
参考一些资料,可以看一些发展历史。C语言历史
早期的操作系统等系统软件主要是用汇编语言编写的,如UNIX操作系统。由于汇编语言
依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好
改用高级语言,但一般高级语言难以实现汇编语言的某些功能,而汇编语言可以直接对硬件
进行操作,例如,对内存地址的操作、位(bit)操作等。人们设想能否找到一种既具有一般
高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种
情况下应运而生了,之后成为国际上广泛流行的计算机高级语言。它适合于作为系统描述语
言,即用来写系统软件,也可用来写应用软件。
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。1960年出现的
ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序,1963年英
国的剑桥大学推出了CPL(Combined Programming Language)语言。CPL语言在ALGOL 60的基
础上接近硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的Matin Richards对
CPL语言作了简化,推出了BCPL(Basic Combined Programming Language)语言。1970年美国
贝尔实验室的Ken Thompson以BCPL语言为基础,又作了进一步简化,它使得BCPL能挤压在
8K内存中运行,这个很简单的而且很接近硬件的语言就是B语言(取BCPL的第一个字母),并
用它写了第一个UNIX操作系统,在DEC PDP-7上实现。1971年在PDP-11/20上实现了B语言,
并写了UNIX操作系统。但B语言过于简单,功能有限,并且和BCPL都是“无类型”的语言。
1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的
第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点
(过于简单,数据无类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工具语
言而设计的。1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,
即UNIX第5版。原来的UNIX操作系统是1969年由美国的贝尔实验室的K.Thompson和
D.M.Ritchie开发成功的,是用汇编语言写的,这样,Unix使分散的计算系统之间的大规
模联网以及互联网成为可能。
后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到1975年UNIX第6版
公布后,C语言的突出优点才引起人们普遍注意。1977年出现了不依赖于具体机器的C语言编
译文本《可移植C语言编译程序》,使C移植到其它机器时所需做的工作大大简化了,这也推
动了UNIX操作系统迅速地在各种机器上实现。例如,VAX,AT&T等计算机系统都相继开发了
UNIX。随着UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄
弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、小、微型机上,如
IBM System/370、Honeywell 6000和Interdata 8/32,已独立于UNIX和PDP了。现在C语言已
风靡全世界,成为世界上应用最广泛的几种计算机语言之一。
以1978年由美国电话电报公司(AT&T)贝尔实验室正式发表的UNIX第7版中的C编译程序为
基础,Brian W.Kernighan(柯尼汉)和Dennis M.Ritchie(里奇)合著了影响深远的名著
《The C Programming Language》,常常称它为‘K&R’,也有人称之为‘K&R标准’或‘白
皮书’(white book),它成为后来广泛使用的C语言版本的基础,但在‘K&R’中并没有定义
一个完整的标准C语言。为此,1983年,美国国家标准化协会(ANSl)X3J11 委员会根据C语言
问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSI C,ANSI C比原来的标准C
有了很大的发展:K&R在1988年修改了他们的经典著作《The C Programming Language》,
按照ANSI C标准重新写了该书。1987年,ANSI又公布了新标准——87 ANSI C。目前流行的C
编译系统都是以它为基础的。当时广泛流行的各种版本C语言编译系统虽然基本部分是相同
的,但也有一些不同。在微型机上使用的有Microsoft C(MS C),Borland Turbo C,Quick C
和AT&T C等,它们的不同版本又略有差异。到后来的Java、C++、C#都是以C语言为基础发展
起来的。2014-02-17