网站开发与软件开发的异同,做团餐 承包食堂的企业网站,免费营销型企业网站模板,品牌化战略的重要性本文由
伯乐在线 - honpey 翻译自 Albatross。欢迎加入
技术翻译小组。转载请参见文章末尾处的要求。C的历史可以追溯到1979年#xff0c;当时Bjarne Stroustrup#xff08;译者注#xff1a;C之父#xff09;正在准备他的博士毕业论文#xff0c;他有机会使用一种叫做Si…本文由
伯乐在线 - honpey 翻译自 Albatross。欢迎加入
技术翻译小组。转载请参见文章末尾处的要求。C的历史可以追溯到1979年当时Bjarne Stroustrup译者注C之父正在准备他的博士毕业论文他有机会使用一种叫做Simula 的语言。顾名思义Simula语言的主要作用是仿真。Simula 67是Simula语言的一种变种被公认是首款支持面向对象的语言。Stroustrup发现面向对象的思想对于软件开发非常有用但是因Simula语言执行效率低其实用性不强。
不久之后Stroustrup开始着手“C with Classes”的研发工作“C with Classes”表明这种新语言是在C基础上研发的是C语言的超集。C语言以其高可移植性而广受好评且程序执行速度以及底层函数的性能不受程序移植的影响Stroustrup要做的就是将面向对象的思想引入C语言。新语言的初始版本除了包括C语言的基本特征之外还具备类、简单继承、内联机制、函数默认参数以及强类型检查等特性。
Bjarne Stroustrup的第一款“C with classes”编译器叫Cfront这个名字源自一个叫做Cpre的C编译器。Cfront的机理是把“C with classes”的代码翻译成原生C代码。颇为有趣的一点是Cfront源码大部分是由“C with Classes”编写这使得Cfront成为了一种自足执行的编译器可以编译自身源码的编译器。由于很难整合C的异常机制Cfront在1993年退出了历史的舞台但是它对以后C编译器以及Unix操作系统的实现都产生了深远的影响。
1983年“C with Classes”语言更名为C。C语言中“”运算子的作用是对一个变量进行递增操作由此我们多少可以知晓Stroustrup对这种新语言的定位。这个时期许多重要的特性被加入其中包括虚函数、函数重载、引用机制符号为、const关键字以及双斜线的单行注释从BCPL语言引入。
1985年Stroustrup的C参考手册《C Programming Language》出版同年C的商业版本问世。由于当时C并没有正式的语言规范因此《C Programming Language》成了业界的重要参考。1989年C再次版本更新这次更新引入了多重继承、保护成员以及静态成员等语言特性。
1990年《Annotated C Reference Manual》发布同年Borland公司的商业版Turbo C编译器问世。Turbo C附带了大量函数库这一举措对C开发产生了极为深远的影响。虽然Turbo C上一个稳定的版本发布于2006年但当前该编译器仍被广泛使用。
1998年C标准委员会发布了C语言的第一个国际标准—ISO/IEC 14882:1998该标准即为大名鼎鼎的C98。C98的提出《The Annotated C Reference Manual》功不可没。同时1979年开始研发的标准模板库Standard Template LibrarySTL也被纳入了该版标准中。2003年标准委员会针对98版本中存在的诸多问题进行了修订修订后发布了C03。
2005年C标准委员会发布了一份技术报告Technical ReportTR1详细说明了计划引入C的新特性。这个新标准被非正式地命名为C0x因为其预计会在本世纪第一个十年的某个时间发布。讽刺的是直到2011年年中该标准才面世相应的技术文档也随之出炉一些编译器厂商也开始试验性地支持这些新特性。
2011年中新的C标准C11面世。Boost库对该版本影响很大一些新的模块甚至直接衍生于Boost中相应的模块。一些新的语言特性包括正则表达式正则表达式详情、完备的随机数生成函数库、新的时间相关函数原子操作支持、标准线程库2011之前C和C语言均缺少对线程的支持、一种能够和某些语言中foreach语句达到相同效果的新的for语法、auto关键字、新的容器类、更好的union支持、数组初始化列表的支持以及变参模板的支持等等。