《C++语言入门经典》一第1章 初识C++——“Hello World!” 1.1 C++的历史背景

第1章 初识C++——“Hello World!”

视频讲解:52分钟

C++是当今流行的编程语言,它是在C语言基础上发展起来的,随着面向对象编程思想的发展,C++也融入了新的编程理念,这些理念有利于程序的开发。C++从语言角度说也是一种规范,随着C++ 11 标准的发布,部分编译器开始了支持新特性的先例。
通过学习本章,读者可以达到以下学习目的:
了解C++的发展历程
了解为C++的发展做出杰出贡献的人物
掌握主要的C++编译器及开发环境
掌握C++项目文件及编译工程

1.1 C++的历史背景

学习一门语言,首先要对这门语言有一定的了解,要知道这门语言能做什么,以及怎样才能学好。本节将对C++语言的历史背景进行简单介绍,使读者对C++语言有一个简单而直接的印象。

1.1.1 20世纪最伟大的发明——计算机

计算机的出现给人们的生活带来了巨大的变化。起初,人们致力于研发进行四则运算的机器,它是通过机械齿轮运作的加法器;接着是精度只有12位的乘法计算器。直到1847年, Charles Babbages开发出能计算31位精度的机械式差分机,这台差分机被普遍认为是世界上第一台机械式计算机。随着电子物理的发展,真空二极管、真空三极管相继问世,到1939年第一部用真空管计算的机器被研制出来,该机器能进行16 位加法;随后,氖气灯(霓虹灯)存储器、复杂数字计算机(断电器计数机)、可编写程序的计数机被相继研制出来。1946年,第一台电子管计算机ENIAC 在美国被研制出来。这台计算机占地170 平方米,重30 吨,有1.8 万个电子管,用十进制计算,每秒运算5 000次。从此,计算机进入了电子计算机时代,经历了真空管计算机、晶体管计算机、集成电路计算机、大规模集成电路计算机四个阶段,每一个阶段都是随着电子物理的发展而发展的,晶体管的出现取代了电子管,它将电子元件集合到一片小小的硅片上,形成集成电路(IC), 在一个芯片上容纳几百个甚至几千个电子元件,形成了大规模集成电路(LSI)。直到现在,已经出现了使用32纳米制作的电子芯片。
现在,计算机已经应用到各个领域,如科学计算、信号检测、数据管理、辅助设计等领域。

1.1.2 C++的发展历程

早期的计算机程序语言就是计算机控制指令,每条指令是一组二进制数,不同的计算都有不同的计算机指令集。使用二进制指令集开发程序是件麻烦的事,人们需要记住大量的二进制数。为了便于记忆, 人们将二进制数用字母组合代替, 以字符串关键字代替二进制机器码, 这种编程语言称为汇编语言。汇编语言被称为低级语言, 虽然汇编语言比机器码容易记忆, 但仍然具有可读性差的缺点, 大量的跳转指令和地址值很难让程序员在短时间内理解程序的意思。于是, 高级语言应运而生。
第一个高级语言是美国尤尼法克公司在1952年研发成功的Short Code, 但被广泛使用的高级语言是FORTRAN, 它是由美国科学家巴克斯设计并在IBM公司的计算机上实现的, 但FORTRAN 语言和Algol 60主要应用于科学和工程计算, 随后出现了Pascal和C语言。C语言是在其他语言的基础上发展起来的。首先是Richard Martin开发了一种高级语言BCPL, 随后, Ken Thompson使用BCPL语言对其进行了简化, 形成了一门新的语言——B语言。但B语言没有类型的概念。之后Dennis Ritchie对B语言进行了研究和改进, 在B语言的基础上添加了结构和类型, 并将这个改进后的语言命名为C语言, 寓意很简单, 因为字母C是字母B的下一个字母, 表示语言的发展。
本书所讲述的C++语言就是从C语言发展而来的, Stroustrup经过钻研, 在C语言中加入了类的概念, C++最初的名字是C with Class, 1983年12月, 由Rick Mascitti建议改名为CPlusPlus, 即C++。
最开始提出类概念的语言是Simula, 它具有很高的灵活性, 但无法胜任比较大型的程序。C++从Simula继承了类的概念, 从Algol 68继承了运算符重载、引用以及在任何地方声明变量的能力, 从BCPL获得了“//” 注释, 从Ada得到了模板、名字空间, 从Ada、Clu和ML得到了异常。

1.1.3 C++发展史中的杰出人物

Dennis M.Ritchie 被称为C语言之父, UNIX 之父, 生于1941年9月9日, 哈佛大学数学博士, 曾任朗讯科技公司贝尔实验室( 原AT&T 实验室) 下属的计算机科学研究中心系统软件研究部的主任一职。他开发了C语言, 并著有The C Programming Language (《C程序设计语言》)一书, 还和Ken Thompson一起开发了UNIX操作系统。他因杰出的成就得到了众多计算机组织的认可和表彰, 1983年获得美国计算机协会颁发的图灵奖( 又称计算机界的诺贝尔奖), 还获得过C&C Dennis Ritchie 基金奖、电气和电子工程师协会优秀奖章、美国国家技术奖章等多项大奖。
Bjarne Stroustrup, 1950年出生于丹麦, 毕业于丹麦阿鲁斯大学和英国剑桥大学, AT&T 大规模程序设计研究部门负责人, AT&T 贝尔实验室和ACM 成员。1979 年, Stroustrup 开始研发一种语言, 当时被称为“C with Class”, 后来演化为C++。1998年, ANSI/ISO C++标准建立, 同年, Stroustrup推出其经典著作The C++ Programming Language Bjarne Stroustrup 的第三版。
Scott Meyers是世界*的C++软件开发技术权威人物之一, 他拥有Brown University的计算机科学博士学位, 其著作Effective C++和More Effective C++ 深受编程人员的喜爱。Scott Meyers曾经是C++ Report的专栏作家, 为C/C++ Users Journal和Dr. Dobb’s Journal 撰稿, 为全球范围内的客户提供咨询活动。他还是Advisory Boards for NumeriX LLC 公司和InfoCruiser公Scott Meyers 司的成员。
Andrei Alexandrescu 被认为是新一代C++天才的代表人物,2001年撰写了经典名著Modern C++ Design,其中对Template 技术进行了精湛运用, 第一次将模板作为参数在模板编程中使用,该书震撼了整个C++社群, 开辟了C++编程领域的Modern C++ 新时代。此外,他还与Herb Sutter 合著了C++ Coding Standards 。他在对象拷贝(objectcopying)、对齐约束(alignment constraint )、多线程编程、异常安全和搜索等领域做出了巨大Andrei Alexandrescu 贡献。
Herb Sutter是C++ Standard Committee的主席,作为ISO/ANSI C++标准委员会的委员,Herb Sutter 是C++ 程序设计领域屈指可数的大师之一。他的Exceptional系列三本书(Exceptional C++、More Exceptional C++ 和Exceptional C++ Style)成为C++程序员的必读书。他是深受程序员喜爱的技术讲师和作家,是C/C++ Users Journal的撰稿编辑和专栏作者,曾发表了上百篇软件开发方面的技术文章和论文。他还担任Microsoft Visual Herb Sutter C++架构师,和Stan Lippman一起在微软主持VC 2005(即C++/CLI)的设计。
Andrew Koenig是AT&T 公司Shannon实验室大规模编程研究部门中的成员,同时也是C++ 标准委员会的项目编辑,是一位真正的C++ 内部权威人物。Andrew Koenig 的编程经验超过30 年,其中有15 年在使用C++,已经出版了超过150 篇和C++ 有关的论文,并且在世界范围内就该主题进行过多次演讲,他对C++的最大贡献是带领Alexander Stepanov 将STL引入C++
Andrew Koenig 标准。

上一篇:直播系统开发的新方向:直播卖货系统


下一篇:DBA在传统企业数据库安全建设上能做些什么?