所在的位置: c++ >> 历史起源 >> C的历史

C的历史

C++的历史可以追溯到年,当时BjarneStroustrup(译者注:C++之父)正在准备他的博士毕业论文,他有机会使用一种叫做Simula的语言。顾名思义,Simula语言的主要作用是仿真。Simula67是Simula语言的一种变种,被公认是首款支持面向对象的语言。Stroustrup发现面向对象的思想对于软件开发非常有用,但是因Simula语言执行效率低,其实用性不强。

不久之后,Stroustrup开始着手“CwithClasses”的研发工作,“CwithClasses”表明这种新语言是在C基础上研发的,是C语言的超集。C语言以其高可移植性而广受好评,且程序执行速度以及底层函数的性能不受程序移植的影响,Stroustrup要做的就是将面向对象的思想引入C语言。新语言的初始版本除了包括C语言的基本特征之外,还具备类、简单继承、内联机制、函数默认参数以及强类型检查等特性。

BjarneStroustrup的第一款“Cwithclasses”编译器叫Cfront,这个名字源自一个叫做Cpre的C编译器。Cfront的机理是把“Cwithclasses”的代码翻译成原生C代码。颇为有趣的一点是Cfront源码大部分是由“CwithClasses”编写,这使得Cfront成为了一种自足执行的编译器(可以编译自身源码的编译器)。由于很难整合C++的异常机制,Cfront在年退出了历史的舞台,但是它对以后C++编译器以及Unix操作系统的实现都产生了深远的影响。

年,“CwithClasses”语言更名为C++。C语言中“++”运算子的作用是对一个变量进行递增操作,由此我们多少可以知晓Stroustrup对这种新语言的定位。这个时期,许多重要的特性被加入,其中包括虚函数、函数重载、引用机制(符号为)、const关键字以及双斜线的单行注释(从BCPL语言引入)。

年,Stroustrup的C++参考手册《C++ProgrammingLanguage》出版,同年,C++的商业版本问世。由于当时C++并没有正式的语言规范,因此《C++ProgrammingLanguage》成了业界的重要参考。年,C++再次版本更新,这次更新引入了多重继承、保护成员以及静态成员等语言特性。

年,《AnnotatedC++ReferenceManual》发布,同年,Borland公司的商业版TurboC++编译器问世。TurboC++附带了大量函数库,这一举措对C++开发产生了极为深远的影响。虽然TurboC++上一个稳定的版本发布于年,但当前该编译器仍被广泛使用。

年,C++标准委员会发布了C++语言的第一个国际标准—ISO/IEC:,该标准即为大名鼎鼎的C++98。C++98的提出,《TheAnnotatedC++ReferenceManual》功不可没。同时,年开始研发的标准模板库(StandardTemplateLibrary,STL)也被纳入了该版标准中。年,标准委员会针对98版本中存在的诸多问题进行了修订,修订后发布了C++03。

年,C++标准委员会发布了一份技术报告(TechnicalReport,TR1)详细说明了计划引入C++的新特性。这个新标准被非正式地命名为C++0x,因为其预计会在本世纪第一个十年的某个时间发布。讽刺的是,直到年年中该标准才面世,相应的技术文档也随之出炉,一些编译器厂商也开始试验性地支持这些新特性。

年中,新的C++标准(C++11)面世。Boost库对该版本影响很大,一些新的模块甚至直接衍生于Boost中相应的模块。一些新的语言特性,包括正则表达式(正则表达式详情)、完备的随机数生成函数库、新的时间相关函数,原子操作支持、标准线程库(之前,C和C++语言均缺少对线程的支持)、一种能够和某些语言中foreach语句达到相同效果的新的for语法、auto关键字、新的容器类、更好的union支持、数组初始化列表的支持以及变参模板的支持等等。









































如何治疗白癜风最好
白癜风最新治疗办法



转载请注明:http://www.nydjfy.com/lsqy/1001.html