导图社区 C发展史:从创世纪到当下
这是一篇关于C发展史:从创世纪到当下的思维导图,主要内容包括:2020年,2017年,2011年8月,2008年10月,2005年,2003年,1998年11月,1998年10月,1997年7月,1994年8月,1991年6月,1990年11月,1990年7月,1990年3月,1989年,1985年10月,1985年2月,1983年12月,1983年8月,19
这是一个关于外国小说的思维导图合集。主要总结了爱丽丝漫游奇境记、绿山墙的安妮、汤姆索亚历险记、海底两万里等经典作品的故事大纲及其影响和启示。
这是一篇关于班级优化大师(最新小红花版)的思维导图,主要内容包括:小组,学生、考勤管理、学生选择、奖励兑换、随机抽选、计时功能以及一系列小工具和活动等多个方面。
这是一篇关于flash8动画代码大全(2)的思维导图,展示了Flash动画制作过程中涉及的一系列步骤和组件,主要内容包括:ActionScript 2.0类,语句。
这是一篇关于丁香结的思维导图,主要内容包括:丁香结,丁香花。该书收录《丁香结》《紫藤萝瀑布》《花朝节的纪念》《那祥云缭绕的地方--记清华大学图书馆》等多篇宗璞创作的散文作品。
社区模板帮助中心,点此进入>>
未命名1
中国电视文艺发展史
中医外科学发展史
治安学概论第二章 中外治安史概述
中联重科发展史
基础心理学思维导图
党的章程发展史
护理学发展史
智能医学发展史
linux发展史
C++发展史:从创世纪到当下
1967年
1967年,著名的计算机科学家丹尼斯·里奇(Dennis Ritchie)进入美国AT&T的贝尔实验室工作。一开始,里奇和他的同事肯·汤普森(Ken Thompson)开始研究DEC PDP-7这种早期计算机,但是他们发现在这个机器上写程序很困难,只能使用繁琐的汇编语言编程。所谓的汇编语言(Assembly Language),计算机底层的低级程序设计语言。在汇编语言中,它用助记符(MOV、PUSH、POP等)代替机器语言的操作码,用地址符号或者标号代替机器语言的地址码。在执行的时候,用汇编语言编写的程序并不能被计算机直接识别和执行,我们还需要通过一个叫汇编程序的工具将汇编语言重新翻译成机器语言,然后交由计算机执行。虽然,汇编语言借助助记符和地址符号在一定程度上降低了编写程序的难度,但是因为它接近计算机底层,因而它所编写出来的程序依然难以阅读和理解,程序的开发效率非常低下。
1971年
汤普森设计了一种高级程序语言来代替汇编语言,并将其命名为B语言。但是由于B语言本身设计的缺陷,使得汤普森在内存的限制面前一筹莫展。
1973年
里奇对B语言进行了改良,从而赋予了这门新语言强有力的系统控制能力,同时,新语言也做到了简洁而高效。里奇把它命名为C语言,意为B语言的下一代程序设计语言。
1978年
里奇和另一位著名的计算机科学家布朗•克尼汉(Brian Kernighan)一起出版了著名的《The C Programming Language》一书,C语言随后逐渐成为世界上应用最广泛的高级程序设计语言,这个版本的C语言也被称为K&R C。
1989年
C语言被ANSI(American National Standards Institute,美国国家标准学会,一个由公司、政府和其他成员组成的志愿组织。这个组织负责协商与标准有关的活动,并审议美国国家标准。)标准化(ANSI X3.159—1989)。在K&R C发布后,又不断有人为C语言添加新特性,但C语言的标准在一段相当长的时间内都保持不变。
1983年8月
C++首次投入使用,开天辟地。
1983年12月
Rick Mascitti建议将C with class更名为CPlusPlus,亦即C++。C++ 从此名正言顺。同年,C++吸收了很多新的特性,其中包括虚函数、函数名和操作符重载、常数、用户可控制的自由空间储存区、改良的类型检查及新的双斜线“//”单行注释风格。
1985年2月
C++ Release 1.0发布。
1985年10月
斯特劳斯特卢普博士完成了经典巨著《The C++ Programming Language》的第一版。
C++ Release 2.0发布。它引入了多重继承、抽象类、静态成员函数及成员访问保护等新特性。C++中面向对象的思想更加成熟。
1990年3月
第一次ANSI X3J16技术会议在美国新泽西州召开。
1990年7月
C++加入模板
1990年11月
C++加入异常处理。
1991年6月
《The C++ Programming Language》第二版完成。
第一次ISO WG21会议在瑞典召开。
1994年8月
ANSI/ISO委员会草案登记。
1997年7月
《The C++ Programming Language》第三版完成。
1998年10月
ISO标准通过表决被接受。
1998年11月
ISO标准得到批准。同年,C++ 11标准公开,它是当时计划中的C++ 的新标准,将取代现行的C++标准ISO/IEC 14882。
2003年
在官方公布1998标准的5年之后,C++ 标准委员会处理缺陷报告,并于2003年发布了一个C++ 标准的修正版本,称为C++ 03。新的标准包含了核心语言的新功能,同时扩展了C++ 标准程序库,合并了大部分的C++ Technical Report 1程序库。
2005年
公布一份名为Library Technical Report 1(简称TR1)的技术报告。虽然它不属于官方标准,但它所提出的几个扩展建议有望成为新C++ 标准的一部分。目前,几乎所有流行的C++ 编译器都已经支持TR1。
2008年10月
C++11的最新报告N2800公开。
2011年8月
C++ 11(先前被称作C++ 0x)获得ISO/IEC一致通过;同年9月新的C++ 标准C++ 11正式出版,C++ 从此进入一个新的时代。
2017年
C++17研发出台
2020年
C++2a(又叫C++20)研发出台
标注:从上到下为时间从早到晚
C++编译历史
CFront
由C++ 之父Bjarne在1982~1983年夏完成,不被认为是真正意义上的C++编译器。
Turbo c/c++
DOS时代的启蒙先驱,上古神器。
1990年5月
Borland发布了Borland C++,一代传奇宝蓝的作品,Turbo C/C++ 的进化版,可惜掩盖在自家王牌Delphi和外敌Visual C++的光芒之下,远没有这两者的历史地位高。
1992年2月
DEC发布了他们独立开发的C++编译器。
1992年3月
Microsoft发布了VC++。6.0版是一代经典,至今仍老而不死,死而不僵,僵而不化,最新版是2015
gcc
GNU C编译器,1987年由Richard Stallman发布的,原本只能处理C程序,后扩展成可处理C++ 等程序。2013年03月22日,GCC 4.8.0发布,进一步加强了对已C++ 11的支持。2014年04月22日,gcc发布了4.9.0版本,提供了对C11标准的Generic Selection语法特性的支持以及对多线程方面特性的支持。后缀.c的源文件,gcc把它当做c程序,后缀为.cpp,gcc把它当做c++ 程序。
g++
GNU C++ 编译器,把.c和.cpp的文件都当做c++ 程序。
LLVM
最初由美国UIUC大学的Chris Lattner博士主持开展,2006年Chris Lattner加盟Apple Inc.并致力于LLVM在Apple开发体系中的应用,Apple也是LLVM计划的主要资助者(最初Apple选择的是GCC,后来GCC对Apple的支持不好,不符合苹果的高效、模块化等特点,苹果找了协议更放松的开源替代品)。LLVM是Low Level Virtual Machine的简称,LLVM优化做的更好,可以直接把指令优化成高效的CPU指令。
clang
clang只支持C, C++和objective-C三种C家族语言,2007年开始开发,目的是因为gcc系统庞大而笨重,与IDE的配合度差,加上许可证方面的要求,Apple无法使用LLVM继续改进代码质量。2009年时,已经完全用于生产环境。