C语言发展简史

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言发展简史

【起源】 C 语言最早的原型是 ALGOL 60 1963 年,剑桥大学将其发展成为 CPL(Combined Programing Language)。 1967 年,剑桥大学的 Matin Richards 对 CPL 语言进行了简化,产生了 BCPL 语言。 1970 年,美国贝尔实验室(Bell Labs)的 Ken Thompson 将 BCPL 进行了修改,并取名叫做 B 语言,意思是提取 CPL 的精华(Boiling CPL down to its basic good features)。并用 B 语言写了第一个 UNIX 系统。 1973 年,AT&T 贝尔实验室的Dennis Ritchie 在 BCPL 和 B 语言的基础上设计出了一种新的语言,取 BCPL 中的第二个字母为名,这就是大名鼎鼎的 C 语言。随后不久,UNIX 的内核(Kernel) 和应用程序全部用 C 语言改写,从此,C 语言成为 UNIX 环境下使用最广泛的主流编程语言。

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

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

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

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

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

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

RitchieTjy平坦软件园

Bell Labs/Lucent TechnologiesTjy平坦软件园

Murray Hill, NJ 07974 USATjy平坦软件园

概要

C语言作为最初的Unix操作系统的系统实现语言,在1970年早期诞生。它以无类型的B语言为基础,形成了一个类型结构;它在小型机上被发明,作为一个工具,以改进贫乏的编程环境。在今天,它已经成为一种占统治地位的语言。本文研究它的发展。 Tjy平坦软件园

简介

版权提示:版权所有1993计算机协会公司。此电子版由作者授权发表。有关出版事宜,请联系ACM或作者。本文被用于一九九三年四月,在马萨诸塞州剑桥的第二次编程语言历史会议上的演讲。 Tjy平坦软件园

之后被收录进会议记录:编程语言历史,第二版。Thomas J. Bergin, Jr. and Richard G. Gibson, Jr. ACM Press (New York) and Addison-Wesley (Reading, Mass), 1996; ISBN 0-201-89502-1.

本文是关于C程序设计语言的发展、它所受到的影响以及它诞生的条件。为简洁起见,我略过了对C本身完整的描述、它的起源B[Johnson 73]及更上一代BCPL[Richards 79],相反集中关注每一种语言的典型特性,以及他们如何发展变化。 Tjy平坦软件园

C在1969——1973年间与Unix操作系统同时诞生;最富创造性的时期是1972年。另一次大的变化发生在1977到1979年间,当Unix系统的可移植性得到证明时。在后一段时期的中间,这个语言的第一个被广为传播的描述出现了:C程序设计语言,常常被称为白皮书或K&R[Kernighan 78]。最后,在1980年代中期,它被ANSI X3J11委员会正式标准化,作了进一步修改。直到1980年代早期,尽管编译器已在多种机器结构及操作系统上出现,这个语言几乎与Unix特别密切关联;更近一些,它的使用传播得更广,并且在今天它几乎是计算机行业被使用最多的语言。 Tjy平坦软件园

历史:环境

贝尔电话实验室的计算机系统研究在1960代年晚期是乱糟糟的[Ritchie 78] [Ritchie 84]。贝尔电话实验室公司正从他和麻省理工学院、通用电气公司的合作项目Multics[Organick 78]撤离。到1969年,贝尔实验室管理层和研究人员认为,Multics项目不能按期完成并且代价高昂。在GE-645 Multics机器被撤走之前,Ken Thompson领导一个非正式小组,开始一些其它的研究。 Tjy平坦软件园

Thompson希望按自己的设计,使用一切有效的方式,创造一个适当的计算环境。他的计划,回想起来是清晰的。组合Multics中的许多创新特征,包括一个作为控制场所的进程的清晰概念、一个树结构文件系统、一个作为用户级程序的命令解释器、文本文件的简单表示和访问设备的通用化。他们排除其余特性,比如对内存和文件的统一访问。开始,他与我们其余人推迟了Multics中的另一个先锋性(但非原创)特征,即只使用高级语言来编写。我对Multics实现所用的语言PL/I,并无兴趣,但我们还使用其他语言,包括BCPL,我们对于不能利用汇编之上的高级语言进行编程的优点,比如容易编写、易于理解,感到遗憾。当时我们并未特别注重可移植性;到后来才有了这方面的兴趣。 Tjy平坦软件园

Thompson面临的是那个时代古怪和难缠的硬件:DEC PDP-7,他在1968年开始使用时,只

相关文档
最新文档