简述c语言的发展史 40

1142007403
2012-06-09 · 超过12用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:40.3万
展开全部
C语言的祖先是BCPL语言。
  1967年,剑桥大学的 Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
  1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
  在1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
  为了使UNIX操作系统推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
  1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。
  K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,这意味着一个认可的正式标准是必需的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990。
  1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。
  1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999。
  2001年和2004年先后进行了两次技术修正。
  目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则又略有差别。
  2011年12月8日,ISO正式公布C语言新的国际标准草案:ISO/IEC 9899:2011,即C11。
  新的标准修提高了对C++的兼容性,并将新的特性增加到C语言中。新功能包括支持多线程, 基于ISO/IEC TR 19769:2004规范下支持Unicode,提供更多用于查询浮点数类型特性的宏定义和静态声明功能。这些新特性包括:
  ● 对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符,aligned_alloc函数以及<stdalign.h>头文件。
  ● _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。
  ● _Generic 关键字。
  ● 多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,<threads.h>;头文件,里面包含了线程的创建和管理函数。
  ● 增强的Unicode的支持。基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>.
  ● 删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。
  ● 增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。
  ● 增加了更多浮点处理宏。
  ● 匿名结构体/联合体支持。这个在gcc早已存在,C11将其引入标准。
  ● 静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。
  ● 新的 fopen() 模式,(“…x”)。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。
  ● 新增 quick_exit() 函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。
  ● _Atomic类型修饰符和<stdatomic.h>;头文件。
shaqueoneal
2012-06-06 · TA获得超过168个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:139万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无敌可爱小慕桐
2012-06-06 · TA获得超过198个赞
知道答主
回答量:127
采纳率:0%
帮助的人:15.8万
展开全部
``````
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式