C语言历史

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; color: #000000 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; color: #000000; min-height: 13.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC Semibold"; color: #000000 }
span.s1 { font: 11.0px Helvetica }
span.s2 { }
span.s3 { color: #df3434 }
span.s4 { font: 14.0px Helvetica }
span.s5 { color: #cc0000 }
span.s6 { font: 11.0px "PingFang SC" }

早期的操作系统软件主要是用汇编语言(包括UNIX操作系统在内)编写的。由于汇编语言依赖于计算机硬件,所以程序的可读性和可移植性都比较差,所以呢,为了提高操作系统软件的可读性和可移植性,最好改用高级语言。但是呢,一些高级语言又难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作,例如对内存地址的操作、位操作等)。所以人们希望找到一种兼顾一般高级语言和低级语言的优点的语言,于是,C语言就在这种情况下诞生了。

C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL60。

1960年出现的ALGOF60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。

1963年英国剑桥大学推出了CPL语言。CPL语言在ALGOL60的基础上接近硬件一些,但是规模比较大,难以实现。

1967年英国剑桥大学的Martin Richards对CPL语言做了简化,推出了BCPL语言。          1970年美国贝尔实验室的?以BCPL 语言为基础,又进一步简化,设计出了很简单的而且很接近硬件的B语言(取BCPL的第一个字母)。

1971年在PDP 11/20上实现了B语言,并编写了UNIX操作系统,此时的B语言过于简单,功能有限。

1972年至1973间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精炼,接近硬件),又克服了他们的缺点(过于简单,数据无类型等)。最初的C语言只是为了描述和实现UNIX操作系统提供一种工作语言而设计的。

1973年,Ken Thompson 和D.M.Ritchie合作把UNIX的90%以上用C语言改写(即UNIX的第5版。原来的UNIX操作系统是1969年由美国的贝尔实验室的Ken Thompson 和D.M.Ritchie开发成功的,是用汇编语言编写的)。

1975年UNIX第6版发布后,C语言的冲突优点才引起人们的普遍注意。

1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C语言移植到其他机器时所需做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现。例如VAX、AT&T等计算机系统都相继开发了UNIX。随着UNIX的日益广泛使用,C语言也迅速得到了推广。

1978年以后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP了。以1978年发布的UNIX第七版中的C语言编译程序为基础,Brain W.Kernighhan和 Dennis M.Ritchie(合称K&R)合著了影响深远的名著《The C Programming Language》,这本书中介绍的C语言成为了后来广泛使用的C语言版本的基础,它成为事实上的C标准。

1983年,美国国家标准协会(ANSI)根据C语言问世以来各种版本对C语言进行了发展和扩充,公布了第一个C语言标准草案(83 ANSI C)。ANSI C比原来的C有了很大的发展。

K&R在1988年修改了他们的经典著作《The C Programming Language》,按照即将公布的ANSI C重新写了该书。

1989年,ANSI公布了一个完整的C语言标准-X3.159.1989,简称C89.   ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。

1990年,国际化标准组织iOS接受C89为IOS C的标准,通称C90. C90与C89基本相同。

1999年,IOS又修订了C语言标准,简称C99.

目前流行的C语言编译系统大多是以C89为基础进行开发的,并未实现C99所建议的所有功能。

美国国家标准学会

(ANSI)American National Standards Institute

国际标准化组织(ISO)

International Organization for Standardization

时间: 2024-10-05 04:27:34

C语言历史的相关文章

C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)

历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA发布的最新规范,C# 6.0还是草案阶段,C# 7.1是微软当前提供的最新规范. 这里仅仅列个提纲,由于C# 5.0是具有ECMA标准规范的版本,所以选择C# 5.0作为主要版本学习,并专题学习C# 6.0,7.0版本新特性. C#语言规范GitHub库参见:https://github.com/

C# 语言历史版本特性(C# 1.0到C# 8.0汇总)

历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA发布的最新规范,C# 6.0还是草案阶段,C# 7.1是微软当前提供的最新规范. 这里仅仅列个提纲,由于C# 5.0是具有ECMA标准规范的版本,所以选择C# 5.0作为主要版本学习,并专题学习C# 6.0,7.0版本新特性. C#语言规范GitHub库参见:https://github.com/

自己使用 1.C语言历史以及特点。

1. C语言的发展及特点? C在1969--1973年间与Unix操作系统同时诞生:最富创造性的时期是1972年.另一次大的变化发生在1977到1979年间,当Unix系统的可移植性得到证明时.在后一段时期的中间,这个语言的第一个被广为传播的描述出现了:C程序设计语言,常常被称为白皮书或K&R[Kernighan 78].最后,在1980年代中期,它被ANSI X3J11委员会正式标准化,作了进一步修改.直到1980年代早期,尽管编译器已在多种机器结构及操作系统上出现,这个语言几乎与Unix特别

浅析如何学好C语言

今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的:是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作.建议大家在心里默念三遍他们的名字,以示仰慕.当然,如果让你们带着现在的知识回到他们的那个时代,那么就没有什么图灵奖了.C语言程序设计是我们的专业基础课,但是C语言本身却是一个非常强大的工具,它是到

第一个C语言编译器是怎样编写的?

首先向C语言之父Dennis MacAlistair Ritchie致敬! 当今几乎所有的实用的编译器/解释器(以下统称编译器)都是用C语言编写的,有一些语言比如Clojure,Jython等是基于JVM或者说是用Java实现的,IronPython等是基于.NET实现的,但是Java和C#等本身也要依靠C/C++来实现,等于是间接调用了调用了C.所以衡量某种高级语言的可移植性其实就是在讨论ANSI/ISO C的移植性. C语言是很低级的语言,很多方面都近似于汇编语言,在<Intel32位汇编语

12中IT语言的特点

软件开发这个行业的武器就是编程语言.IT发展到今天,产生了种类繁多的编程语言,有的古老却任然使用,有的新生而激情四射,有的只是昙花一现就黯然消逝,有的则从诞生之日就不断 发展壮大.选择何种编程语言平台,便是摆在很多希望步入IT行业人面前的首道难题. 1.Java Java语言自1995年发布以来,由于其面向对象.跨平台和分布式的特性迅速风靡整个IT界.加之Sun.Oracle.IBM等行业巨头的大力支持,以及众多开发者为其设计的各种框架技术使得Java技术涵盖了当今软件开发的几乎所有方面.其中,

你知道第一个 C 语言编译器是如何编写的吗?

C语言是很低级的语言,很多方面都近似于汇编语言,在<Intel 32位汇编语言程序设计>一书中,甚至介绍了手工把简单的C语言翻译成汇编的方法.对于编译器这种系统软件,用C语言来编写是很自然不过的,即使是像Python这样的高级语言依然在底层依赖于C语言(举Python的例子是因为Intel的黑客正在尝试让Python不需要操作系统就能运行--实际上是免去了BIOS上的一次性C代码).现在的学生,学过编译原理后,只要有点编程能力的都可以实现一个功能简单的类C语言编译器. 可是问题来了,不知道你有

如果是初学C语言请看完 一些成功人士的心得

转自程先的专栏     今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的:是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作.建议大家在心里默念三遍他们的名字,以示仰慕.当然,如果让你们带着现在的知识回到他们的那个时代,那么就没有什么图灵奖了. C语言程序设计是我们的专业基础课,但是C语言本身却是

C语言学习笔记---001C语言的介绍,编译过程原理,工具等

技术qq交流群:Dream:251572072 ----------------------------------------------------------------------- a.C语言的历史 起源 标准化 b.基于c的语言 编程语言都借鉴了c语言的特性 c++语言:包含所有c语言特性,增加了类和其他的特性支持面向对象编程 java:基于C++的,包含了一些c的特性 C#:是由java和c++发展起来的 Perl:脚本语言 c.c语言特性: c语言是一种底层语言,为了适应系统编程