C语言的发展简史

C语言诞生于上世纪70年代初,且是在B语言的基础上发展而来,先来介绍一下c语言的两位先祖。

1.1  BCPL语言

Basic Combined Programming Language,是一种早期的高级语言,1967年由剑桥大学的计算机科学家马丁·理察德在CPL语言上改进而来,不过BCPL没有使用太长时间便被取代。

1,2  B语言

1969年前后美国贝尔实验室的科学家肯尼斯·蓝·汤普森基于BCPL发明了B语言——C语言的前身。而且他是Plan9操作系统的创造者和开发者之一。与丹尼斯·里奇同为1983年图灵奖得主。

2.致敬先辈——伟大的C语言之父

丹尼斯·麦卡利斯泰尔·里奇,C语言之父,UNIX之父,曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。1978年与布莱恩·科尔尼干一起出版名著《C程序设计语言》。

3.正文

(1)起源

C语言最早的原型是ALGOL60 1903年,剑桥大学将其发展成为CP,1967年,剑桥大学的Matin Richards对CPL语言进行了简化,产生了BCPL语言。

1970年,美国贝尔实验室将BCPL进行了修改,并取名叫B语言,意思是提取CPL的精华。并用B语言写了第一个UNIX系统。

1973年,AT&T贝尔实验室的D.M.RITCHIE在BCPL和B语言的基础上设计出了一种新的语言,取BCPL中的第二个字母为名,这就是大名鼎鼎的C语言。

随后不久,UNIX的内核(Kernel)和应用程序全部用C语言改写,从此,C语言成为UNIX环境下使用最广泛的主流编程语言。

(2)K&RC

1978年Dennis Ritchie和Brian Kernighan合作推出了《The C Programming Language》的第一版(简称K&R),书末的参考指南一节给出了当时C语言的完整定义,成为那时C语言事实上的标准,人们称之为K&KC.从这一年以后,C语言被移植到了各种机型上,并受到了广泛的支持,使C语言在当时的软件开发中几乎一统天下。

(3)C89(ANSIC)

随着C语言在多个领域的推广,应用,一些新的特性不断被各种编译器实现并添加进来。于是,建立一个新的“无歧义,于具体平台无关的C语言定义”成为越来越重要的事情。1983年,ASC X3(ANSI属下专门负责信息技术标准化的机构,现已改名为INCITS)成立了一个专门的技术委员会J11(J11是委员会编号,全称是X3J11),负责起草关于C语言的标准草案,1989年,草案被ANSI正式通过成为美国国家标准,被称为C89标准。

(4)C90(ISO C)

随后,《The C Programming Language》第二版开始出版发行,书中内容根据ANSI C(C89)进行了更新。1990年,在ISO/IEC JTCI/SC22/WG14(ISO/IEC联合技术第1委员会第22分委员会第14工作组)的努力下,ISO批准了ANSI C成为国际标准。于是ISO C(又称C90)诞生了。除了标准文档在印刷编排上的某些细节不同外,ISO C(C90)和ANSI C(C89)在技术上完全一样。

(5)C95

之后,ISO在1994,1996年分别出版了C90的技术勘误文档,更正了一些印刷错误,并在1995年通过了一份C90的技术补充,对C90进行了微小的扩充,经过扩充后的ISO C被称为C95。

(6)C99

1999年,ANSI和ISO又通过了最新版本的C语言标准和技术勘误文档,该标准被称为C99。这基本上是目前关于C语言的最新,最权威的定义了。

现在,各种C编译器都提供了C89(C90)的完整支持,对C99还只提供了部分支持,还有一部分提供了对某些K&K C风格的支持。

目前主要的C语言规范有C89(C90),C95(94)和C99。C89是最早的C语言规范,于89年提出,90年先由美国国家标准局推出ANSI版本,后来被接纳为ISO国际标准(ISO/IEC 9899:1990),因而有时也称为C90。但在94和96年分别对C90进行了两次错误修正,gac也支持C95规范。最新的一次C规范修订在99年制定(ISO/IEC9899:1999),即常称的C99规范。在2001年对C99的错误进行了修正,gac支持的修正后的C99规范,但是到目前为止,gac还没有完成对C99规范的完全支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值