[转]C++语言的历史和标准化
转:https://blog.csdn.net/lemonrabbit1987/article/details/48222339
1979年4月,贝尔实验室的Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)博士等人负责分析UNIX内核,但当时没有合适的工具能够有效地分析由于内核分布而造成的网络流量,将内核模块化,因此他们的工作进展缓慢。1979年10月,Bjarne Stroustrup为C语言增加了类似于Simula语言的类机制并设计开发了一个预处理器Cpre,来处理这些添加的元素和C语言的对应。在这个过程中,Bjarne Stroustrup产生了创建一门新语言的想法,这就是C++语言的萌芽。
1980年,C++的早期版本诞生,称作带类的C(C with Classes)。1983年Rick Mascitti建议将带类的C命名为C++(C Plus Plus),从此,C++作为一个优秀的程序设计语言被广为人知。C++是在C语言的基础上开发出来的,是C语言的超集,同时参考了很多其他语言的特性,例如Simula中的类概念,Algol68的运算符重载、引用及在任何地方声明变量的特性,BCPL的//注释和Ada语言中的模板、命名空间以及Ada、Clu和ML中的异常概念,它既具有C语言的高效性和灵活性,也提供了程序组织的高层特性。
1983年之后,C++使用的爆炸式增长。传统的面向用户遇到的问题及基于同事间讨论的演化方式已无法满足需求,迫切需要对C++语言进行标准化。1989年,《The Annotated C++ Reference Manual》发布,成为C++标准的基础。同年12月,ANSI的X3J16委员会成立并在华盛顿召开第一次技术会议,ANSI C++标准的制定开始提上日程。1991年7月ANSI C++标准化成为ISO标准化工作的一部分。1995年4月,C++标准草案提交公众审阅,1998年ISO C++标准通过ISO评审成为国际标准,称作C++98.
2003年,C++标准委员会对C++98中的问题进行了修订,发布了C++03版本,该版本并没有对核心语言进行修改。2011年,新的C++标准C++11面世,增加了多线程支持、通用编程支持等,标准库也有很多变化,集成了C++技术报告1库(TR1)中的大部分内容。2014年12月15号,C++ ISO/IEC标准的最新版本C++14。C++14是对C++11的小范围的扩展,主要内容是修复bug和略微提高性能。
参考文献
- Bjarne Stroustrup著,裘宗燕译. C++程序设计语言(特别版).机械工业出版社 2009.
- http://zhidao.baidu.com/link?url=eLW5nMUN3ljGPGVb9q63VeQJ1Xkxsk3Iuy4m3iiF3GHBfQhIE6mwpZYWz0wZIovjnV0iFZGEepT1-jMJNcMw5q
- http://www.howzhi.com/course/3687/lesson/43412
- http://blog.jobbole.com/64349/
- https://en.wikipedia.org/wiki/C%2B%2B03
- https://en.wikipedia.org/wiki/C%2B%2B14
- https://en.wikipedia.org/wiki/C%2B%2B#Standardization
[转]C++语言的历史和标准化的更多相关文章
- JavaScript 、ECMAScript、commonJS 发展历史 与标准化发展
本文介绍下JavaScript和 ECMAScript的诞生及发展历史,以及标准化过程. 一.JavaScript诞生 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版. ...
- C语言的历史及个人拙见
C语言是一个无限广阔的世界,你刚开始睁眼看它的时候以为视线的尽头就是边界,但当你慢慢走去,才发现天外有天.这或许就是江湖传说只有C才有真正高手的原因,或许我们也可以反过来说:C没有高手——因为没有人能 ...
- JavaScript 语言的历史
说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.诞 ...
- java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)
最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...
- Java基础学习总结一(Java语言发展历史、JDK下载安装以及配置环境变量)
最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...
- C语言的历史
1.ALGOL语言 ALGOL ,为算法语言(ALGOrithmic Language)的缩写,是计算机发展史上首批产生的高级程式语言家族.当时还是晶体管计算机流行的时代,由于ALGOL语句和普通语言 ...
- UVa 1671 语言的历史——判断两个DFA是否等价
题意 一个DFA可以用一个5元组 $((Q, \sum , \delta , q_0, F))$ 表示,其中 $Q$ 为状态集,$\sum$ 为字母表,$\delta$ 为转移函数,$q_0$ 为起 ...
- Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境
本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...
- Java学习1 - java 历史
Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等.Sun内部人员把这个项目称为 Green,那时World Wide Web还在图纸上呢.该小 ...
随机推荐
- 最短路-朴素版Dijkstra算法&堆优化版的Dijkstra
朴素版Dijkstra 目标 找到从一个点到其他点的最短距离 思路 ①初始化距离dist数组,将起点dist距离设为0,其他点的距离设为无穷(就是很大的值) ②for循环遍历n次,每层循环里找出不在S ...
- js部分知识整理,google浏览器的代码调试
整理一些学过的js知识点,包括js中3个括号的含义,this的使用,递归,google浏览器的代码调试.Location的属性及常用方法,window对象常用方法,open方法等. js括号 在js中 ...
- Java8新特性_四大内置核心函数式接口
Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...
- RabbitMQ (基础知识)
AMQP简介 AMQP(Advanced Message Queue )即:高级消息队列协议:,是应用层协议的一个开放标准,为面向消息的中间件设计:高级消息队列协议使得遵从该规范的客户端应用和消息中间 ...
- (9)Linux的哲学思想及文件概念
一.Linux的哲学思想 1. 一切皆文件 把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义: 对文件的操作有:open,read,write,close,delet ...
- (5)U盘安装Linux系统
1.前期准备 使用 U 盘安装 Linux 系统,需要准备以下工具: 大容量的U盘(安装 CentOS 6.x 系统,U 盘容量至少 8 G): UltraISO 工具,用来制作 U 盘启动盘.除此之 ...
- DEDECMS:解决BMP、jpeg图片或MP4视频无法上传和在后台无法显示
一.BMP图片无法上传解决方法: 1.修改配置文件: 在include-->dialog的文件夹下, select_images_post.php--> 把 $sparr = Array( ...
- Java链表(英雄增删查改)
链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下 小结: 1.链表是以节点的方式来存储,是链式存储. 2.每个节点包含 data 域, next 域:指向下一个节点. 3 ...
- hdu 13394 Minimum Inversion Number 线段树
题意: 首先给你一个长度为n的序列v,你需要首先找出来逆序对(i<j && v[i]>v[j]) 然后把这个序列的最后一个元素放在第一个位置上,其他元素都向后移动一位. 一 ...
- RPC是个啥
RPC概念 RPC(Remote Procedure Call)远程过程调用 为什么出现? 分布式应用催生,一个服务需要调用另外一个服务的方法 为什么不用web api的形式调用? 用也可以,但通常是 ...