0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++语言,已经深深改变我们的世界

C语言专家集中营 来源:未知 作者:李倩 2018-05-01 17:46 次阅读

摘要:Big Data , A.I., Machine Learning……新概念正在出现,Bjarne希望C++可以促进这种变革。这些年他频繁接触A.I.,希望用C++帮助A.I.系统的使用者们更好地运作。

C++之父Bjarne Stroustrup

C++语言,已经深深改变我们的世界。

作为一门系统级编程语言,C++语言就像是C语言的超集,支持面向对象程序设计方法的所有概念,擅长面向对象程序设计,还可以进行基于过程的程序设计,具有很强的普适性、移植性和稳定性,对硬件可以直接操控。

包括火星探测器,人类基因组计划、Google、亚马逊、Amadeus机票预订系统、OpenOffice、华尔街投行、交易所大部分交易引擎,背后都是C++语言。巅峰时期,C++语言的使用者以每7.5个月翻一倍的速度增长,程序员队伍迅速壮大,众多新兴科技公司因此崛起。

它的发明者Bjarne Stroustrup,现任摩根士丹利信息技术部门董事总经理,哥伦比亚大学计算机科学系客座教授。他出生于丹麦,在剑桥读完博士,1979年,他开始开发一种称为“C with Classes”的语言,后来演化为C++。

1998年,ANSI/ISO C++标准建立,Bjarne推出了经典著作The C++ Programming Language第三版,C++完成了标准化历程。

钛媒体记者在上海见到了C++之父,他66岁依然经常写代码,致力于更新C++的标准和体系。

Bjarne在高校从事科研工作多年,为了了解一线程序员的需求,他加入摩根士丹利:“我想看人们怎么开发软件,遇到什么问题,找到改善C++的方向,我想创造一种更有用的语言。”

C++的崛起史

世界上第一种计算机高级语言是FORTRAN,诞生于1954年,随后多种计算机高级语言出现,比如BASIC,这是为初学者设计的小型高级语言,以及美国贝尔实验室在1972年开发出的C语言,应用于大多数系统软件和应用软件的程序编写。

20世纪70年代中期,Bjarne在剑桥大学计算机中心工作,使用过Simula和ALGOL,接触过C语言。1979年,Bjame进入贝尔实验室,开始从事将C改良为C with classes的工作,他一心想提高项目的工作效率,希望设计一种能直接操控硬件的更好的计算机语言。他说:

“一个编程语言最大的价值在于应用,IT技术可以被应用到很多行业,从电话到火箭,从小到大的领域,地球上永远有人对新应用感兴趣。”

1983年,改良后的C with classes,被正式命名为C++。作为一个实用主义者,Bjarne认为任何语言的编程,首先需要非常直白,不断做重复的实验测试,以及程序员之间的及时沟通、频繁交流,写代码并不是一个单打独斗的事情。

C++先后经历了3次修订,Bjame不断修改,为其加入新特征。到了20世纪90年代初,人们开始为C++建立一个标准,成立了ANSI和ISO,这是一个联合标准化委员会。

科学家Alexander stepanov创建了标准模板库,即STL,它功能强大、设计优雅,委员会将STL包含到C++标准中,扩展了C++的范围。1997年委员会通过了标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。

标准C++被确认了,所有主流编译器,包括微软的Visual C++和Borland公司的C++Builder,都支持这个版本。之后它不断迭代完善:

1990年,引入模板和异常处理的概念;

1993年,引入运行时类型识别(RTTI)和命名空间(Name Space)的概念;

1997年,C++语言成为美国国家标准(ANSI);

1998年,C++语言又成为了国际标准(ISO)。

现在它已成为使用最广泛、面向对象的程序设计语言之一,微软、Apple的大部分软件、 腾讯的QQ和微信、Android底层架构、 大部分数据库的核心代码……它无处不在。

创新是不断突破自己

每种成功的编程语言,都有其核心竞争力,有些适合浏览器,有些适合专业的应用软件。在Bjarne看来,编出一种成功的语言,最重要的是保持其核心竞争力。

他经常和一线开发应用的编程人员、系统开发工程师聊天,发现问题,再优化功能。很多人问他:为什么C++不可以将Java Script的优点纳入旗下,提高写入程式时的效率,增强反馈能力?

Java是一门面向对象编程语言,不仅吸收了C++语言的优点,还摒弃了C++里难以理解的多继承、指针等概念,它可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。Bjame的一个学生参考了C++的写法,创造了Java。

Bjarne说:“我认为Java是自成一体的,只有你想出一种办法把C++的核心特点和Java的核心特点结合在一起,这两种语言才能被整合。但事实是,这是不可能的。”

也有人向他反馈:希望C++操作更简单,再增加几个新功能。Bjarne尝试过丢掉一些老旧的功能,为C++瘦身,让它变得简单,但是几乎每次都失败。

因为C++几乎每个功能都被使用过,那些用过或开发过这个功能的人,不想舍弃这些代码,Bjarne希望未来设计一些功能,建构新的分析系统,让电脑自动筛选出老旧过时的代码,用户可以一键更新。

Bjarne还在不断突破:“我一直想打造一个完美的系统,我希望C++更可靠、快捷、简便,但是我还没成功,C++是非常大的分布性的系统,未来还会更多版本。”

推动C++不断发展的动力,来自其背后庞大的应用,硬件正在变得越来越现代化,C++语言的挑战之一是:如何跟上硬件发展,与时俱进。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译器
    +关注

    关注

    1

    文章

    1642

    浏览量

    49336
  • C++语言
    +关注

    关注

    0

    文章

    147

    浏览量

    7044

原文标题:C++改变了世界,未来还要助力人工智能、大数据、机器学习的研发

文章出处:【微信号:C_Expert,微信公众号:C语言专家集中营】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言C++中那些不同的地方

    C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言
    的头像 发表于 12-07 14:29 1077次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>和<b class='flag-5'>C++</b>中那些不同的地方

    C语言C++运用

    。是世界上使用最广泛的编程语言之一。C++ 之父 —— Bjarne Stroustrup随着物联网技术的发展,C/C++ 技术在网络通信(
    发表于 11-25 10:47

    C++编程语言的应用领域有哪些

    软件的架构方法。从这个层面上讲,C++的影响已经不仅仅是一门编程语言这样简单。今天,我们来看一看C++
    发表于 12-15 06:58

    c++程序设计语言题解

    c++程序设计语言题解是与Bjarne Stroustrup的《C++程序设计语言》一书配套使用的习题解答,为从《C++程序设计
    发表于 09-05 16:00 121次下载
    <b class='flag-5'>c++</b>程序设计<b class='flag-5'>语言</b>题解

    CodeWarrior C and C++ and Assembly 语言参考设计

    本文是英文版的,介绍了CodeWarrior C and C++ and Assembly 语言参考设计,在您的设计中或许有用:
    发表于 06-22 15:33 74次下载

    CC++语言参考手册

    CC++语言参考手册
    发表于 06-19 11:12 23次下载

    C++的“深度”与“广度”来探究其复杂程度

    C++是一种高深莫测的语言,这是众所周知的。它的复杂度,我们可想而知。下面让我们一同与作者,走进C++
    的头像 发表于 01-15 15:48 3449次阅读

    C/C++编程语言学习难点及语言

    一般学C++前都要学C,所以通常叫它们C/C++C/C++历经40余年,也是经久不衰的号称“永
    发表于 08-15 10:24 2299次阅读

    C语言C++相互调用

    接口的问题,比如最常用的C++调用C的接口来完成相应的外设驱动接口。 我们知道C++几乎是完全兼容C的,不同的编译
    的头像 发表于 01-18 11:05 3404次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>与<b class='flag-5'>C++</b>相互调用

    C语言C++到底是什么关系

    首先C++C语言本来就是两种不同的编程语言,但C++确实是对C
    的头像 发表于 06-20 11:28 5128次阅读

    C++语言的发展

    今年的CPP North C++大会上,谷歌宣布了一门新的编程语言Carbon,并称其将是“C++的继任者”。
    发表于 08-15 14:22 636次阅读

    C语言 / C++基础面试知识大集合

    点击上方名片关注我们C语言C++相关的面试题一直比较少见一些,没有Java方向写的人那么多,这是一篇C
    的头像 发表于 05-26 10:38 1013次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b> / <b class='flag-5'>C++</b>基础面试知识大集合

    如何选择创建c语言c++

    选择创建 C 语言C++ 都需要综合考虑多个因素。在决定使用哪种语言之前,我们需要对这两种语言
    的头像 发表于 11-27 15:58 692次阅读

    vb语言c++语言的区别

    VB语言C++语言是两种不同的编程语言,虽然它们都属于高级编程语言,但在设计和用途上有很多区别。下面将详细比较VB
    的头像 发表于 02-01 10:20 2596次阅读

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言
    的头像 发表于 02-05 14:11 2647次阅读