计算机c语言发展历程

   更新日期:2024.05.18
起步

C语言的第一次发展在1969年到1973年之间。之所以被称为“C”是因为C语言的很多特性是由一种更早的被称为B语言的编程语言中发展而来。早期操作系统的核心大多由组合语言组成,随着C语言的发展,C语言已经可以用来编写操作系统的核心。1973年,Unix操作系统的核心正式用C语言改写,这是C语言第一次应用在操作系统的核心编写上。
K&R C

1978年,丹尼斯·里奇(Dennis Ritchie)和Brian Kernighan合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程序设计师称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色:

* 结构(struct)类型
* 长整数(long int)类型
* 无号整数(unsigned int)类型
* 把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = +10还是i =+ 10,使得处理上产生混淆。

即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最低标准要求,许多老旧的编译仍然运行K&R C的标准。
ANSI C 和 ISO C(1985年)

1989 年,C 语言被 ANSI 标准化(ANSI X3.159-1989)。标准化的一个目的是扩展 K&R C。这个标准包括了一些新特性。在 K&R 出版后,一些新特性被非官方的加到 C 语言中。

* void 函数
* 函数返回 struct 或 union 类型
* void * 数据类型
* 在 ANSI 标准化自己的过程中,一些新的特性被加了进去。ANSI 也规定一套了标准函数库。ANSI ISO(国际标准化组织)成立 ISO/IEC JTC1/SC22/WG14 工作组, 来规定国际标准的 C 语言。通过对 ANSI 标准的少量修改,最终通过了 ISO 9899:1990。随后, ISO 标准被 ANSI 采纳。

传统 C 语言 到 ANSI/ISO 标准 C 语言 的改进包括:

* 增加了真正的标准库
* 新的预处理命令与特性
* 函数原型允许在函数申明中指定参数类型
* 一些新的关键字,包括 const、volatile 与 signed
* 宽字符、宽字符串与字节多字符
* 对约定规则、声明和类型检查的许多小改动与澄清

ANSI C 和 ISO C(1995年)

作为对标准的维护与更新,WG14 工作小组在 1995年, 对 1985 年颁布的标准做了两处技术修订(缺陷修复)和一个补充(扩展)。下面是 1995 年做出的所有修改:

* 3 个新的标准库头文件 iso646.h、wctype.h 和 wchar.h
* 几个新的记号与预定义宏,用于对国际化提供更好的支持
* printf/sprintf 函数一系列新的格式代码
* 大量的函数和一些类型与常量,用于多字节字符和宽字节字符

C99

它被ANSI于2000年三月采用。

在C99中包括的特性有:

* 对编译器限制增加了,比如源程序每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节 (extern 要求支持到 31)
* 预处理增强了。例如:
o 宏支持取参数 #define Macro(...) __VA_ARGS__
o 使用宏的时候,参数如果不写,宏里用 #,## 这样的东西会扩展成空串。(以前会出错的)
o 支持 // 行注释(这个特性实际上在C89的很多编译器上已经被支持了)
* 增加了新关键字 restrict, inline, _Complex, _Imaginary, _Bool
o 支持 long long, long double _Complex, float _Complex 这样的类型
* 支持 <: :> <% %> %: %:%: ,等等奇怪的符号替代,D&E 里提过这个
* 支持了不定长的数组。数组的长度就可以用变量了。声明类型的时候呢,就用 int a[*] 这样的写法。不过考虑到效率和实现,这玩意并不是一个新类型。所以就不能用在全局里,或者 struct union 里面,如果你用了这样的东西,goto 语句就受限制了。
* 变量声明不必放在语句块的开头,for 语句提倡这么写 for(int i=0;i<100;++i) 就是说,int i 的声明放在里面,i 只在 for 里面有效。
* 当一个类似结构的东西需要临时构造的时候,可以用 (type_name){xx,xx,xx} 这有点像 C++ 的构造函数

初始化结构的时候现在可以这样写:

*

struct {int a[3], b;} hehe[] = { [0].a = {1}, [1].a = 2 };
struct {int a, b, c, d;} hehe = { .a = 1, .c = 3, 4, .b = 5} // 3,4 是对 .c,.d 赋值的

* 字符串里面,\u 支持 unicode 的字符
* 支持 16 进制的浮点数的描述
* 所以 printf scanf 的格式化串多支持了 ll / LL (VC6 里用的 I64) 对应新的 long long 类型。
* 浮点数的内部数据描述支持了新标准,这个可以用 #pragma 编译器指定
* 除了已经有的 __line__ __file__ 以外,又支持了一个 __func__ 可以得到当前的函数名
* 对于非常数的表达式,也允许编译器做化简
* 修改了对于 / % 处理负数上的定义,比如老的标准里 -22 / 7 = -3, -22 % 7 = -1 而现在 -22 / 7 = -4, -22 % 7 = 6
* 取消了不写函数返回类型默认就是 int 的规定
* 允许 struct 定义的最后一个数组写做 [] 不指定其长度描述
* const const int i; 将被当作 const int i; 处理
* 增加和修改了一些标准头文件, 比如定义 bool 的 <stdbool.h> 定义一些标准长度的 int 的 <inttypes.h> 定义*复数的 <complex.h> 定义宽字符的 <wctype.h> 有点泛型味道的数学函数 <tgmath.h> 跟浮点数有关的 <fenv.h>。<stdarg.h> 里多了一个 va_copy 可以复制 ... 的参数。<time.h> 里多了个 struct tmx 对 struct tm 做了扩展
* 输入输出对宽字符还有长整数等做了相应的支持
* 但是各个公司对C99的支持所表现出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的时候,微软和Borland却似乎对此不感兴趣。

C语言是在70年代初问世的,一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的<>一书,通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表,通常称之为ANSI C。当代最优秀的程序设计语,早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。C语言是一种结构化语言,一般不具备逻辑关系。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强,它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构;而且它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

计算机发展历程



  • 15130666964 :计算机c语言发展历程
    包追瑗2706 :答:C语言的第一次发展在1969年到1973年之间。之所以被称为“C”是因为C语言的很多特性是由一种更早的被称为B语言的编程语言中发展而来。早期操作系统的核心大多由组合语言组成,随着C语言的发展,C语言已经可以用来编写操作系统的核心。1973年,Unix操作系统的核心正式用C语言改写,这是C语言第一次应用在...
  • 15130666964 :c语言的基本单位是什么
    包追瑗2706 :答:1987年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它...
  • 15130666964 :简述C语言的发展
    包追瑗2706 :答:现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一。以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合著了影响深远了名著《The C Programming Lan- guage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。1983...
  • 15130666964 :电子计算机需要用到的C语言是如何产生和发展的?
    包追瑗2706 :答:C 语言由一系列旨在进行系统编程的语言演变而来,系统编程就是编写像编译器、汇编器、编辑器以及最终的操作系统这样的程序。麻省理工学院有一个与贝尔实验室合作的 Multics 项目,它计划用一种高级语言编写系统的所有部分(这在 1965 年那时候是一个新想法)。他们打算使用 IBM 的 PL/1,但它非常复杂,...
  • 15130666964 :计算机语言的发展历程
    包追瑗2706 :答:计算机语言的发展历程分三个阶段,分别是机器语言、汇编语言、高级语言。机器语言,也称为二进制语言。机器语言是计算机能够直接理解和执行的指令集合,由二进制数0和1组成。机器语言是计算机硬件的底层语言,可以被计算机硬件直接执行,但是它非常依赖于特定的计算机硬件架构,移植性很差。汇编语言是一种比...
  • 15130666964 :简述计算机程序设计语言的发展历程。
    包追瑗2706 :答:一、前期 二十世纪四十年代当计算机刚诞生时,计算机需要程序员手动控制。,德国工程师楚泽提出要用一种程序语言控制计算机。60年代末期为了应对软件危机,克服程序设计模型中都无法克服错误随着代码的扩大而扩大,这新的思考程序设计方式和程序设计模型——面向对象程序设计出现了。也就诞生了一批支持此技术的...
  • 15130666964 :网易云是什么语言开发的?
    包追瑗2706 :答:网易云是使用计算机语言C语言开发的。一、C语言简介 C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,C语言是由UNIX的研制者丹尼斯·里奇于1970年由肯·汤普逊所研制出的B语言的基础上发展和完善起来的。二、发展历程 1...
  • 15130666964 :Dev-C++的历史发展
    包追瑗2706 :答:C++是从C语言中发展而来的。C语言是1972年由美国贝尔实验室(AT&TBell)的D.M.Ritchie研制成功的。它不是为了初学者设计的,而是为计算机专业人员设计的。最初它是作为写UNIX操作系统的一种工具,在贝尔实验室内部使用。后来C语言不断改进,人们发现它功能丰富、表达能力强、使用灵活方便、应用面广、目标...
  • 15130666964 :大学计算机专业里 的c语言是什么
    包追瑗2706 :答:计算机专业里 的c语言:C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的DEC PDP-11计算机上使用。它由早期的编程语言BCPL(Basic Combined Programming Language)发展演变而来,在1970年,AT&T贝尔实验室的Ken Thompson根据BCPL语言设计出较先进的并取名为B的语言,最后导致了C语言的...
  • 15130666964 :编程语言发展史
    包追瑗2706 :答:C++编程语言历史===C++是从C语言发展而来的,而C语言的历史可以追溯到1969年。 在1969年,美国贝尔实验室的Ken Thompson为DEC PDP-7计算机设计了一个操作系统软件,这就是最早的UNIX。接着,他又根据剑桥大学的Martin Richards设计的BCPL语言为UNIX设计了一种便于编写系统软件的语言,命名为B。B语言是一种无类型的语言...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网