最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

直播回顧丨現(xiàn)代C++的文藝復(fù)興—暨《現(xiàn)代C++白皮書》發(fā)布

2021-12-16 13:14 作者:Boolan博覽  | 我要投稿


01 現(xiàn)代C++


作為一門應(yīng)用廣泛的系統(tǒng)級編程語言,C++已經(jīng)誕生36年了,其不斷演化迭代,經(jīng)受了時代的考驗和錘煉,C++編寫的龐大系統(tǒng)軟件體系是當(dāng)今數(shù)字世界基礎(chǔ)設(shè)施的主要構(gòu)建者。


“現(xiàn)代C++”是指國際C++標(biāo)準(zhǔn)委員會在2006之后發(fā)布的4個版本,包括C++11/14/17/20?!冬F(xiàn)代C++白皮書》由“C++之父”Bjarne Stroustrup和全球C++及系統(tǒng)軟件技術(shù)大會聯(lián)合發(fā)布,作為公益書籍在中國C++社區(qū)發(fā)行。本書對現(xiàn)代C++從2006年到2020年間做了百科全書式的回顧,是現(xiàn)代C++發(fā)展歷史上最重要的文獻(xiàn)。


此次直播由Boolan首席軟件專家李建忠老師主講,從現(xiàn)代C++的技術(shù)演進(jìn)、精進(jìn)路線圖以及現(xiàn)代C++的應(yīng)用生態(tài)與發(fā)展這三個方面為大家解讀《現(xiàn)代C++白皮書》。


02?現(xiàn)代C++的技術(shù)演進(jìn)

抽象思維+機(jī)器思維

李建忠老師強(qiáng)調(diào)任何編程語言都需要具備兩種思維—面向機(jī)器底層的機(jī)器思維和面向領(lǐng)域和業(yè)務(wù)的抽象思維。


抽象思維

抽象是計算機(jī)科學(xué)中最重要的一種思維方式,抽象思維是人類管理復(fù)雜性的技術(shù)。程序員通常需要具備強(qiáng)大的抽象思維能力來處理復(fù)雜的業(yè)務(wù)邏輯,完成大型軟件的構(gòu)建。抽象思維包括:設(shè)計范式、組件封裝、設(shè)計模式、構(gòu)架模式等。李建忠老師對現(xiàn)代C++在抽象思維方面的改進(jìn)做了系統(tǒng)的梳理。

  • 設(shè)計范式

    概念提升后的泛型編程將進(jìn)入和OO并駕齊驅(qū)的應(yīng)用開發(fā)領(lǐng)域。現(xiàn)代C++設(shè)計范式的主要特性有:

    ? 面向過程

    ? 面向?qū)ο?/p>

    ? ?? enum class

    ? 泛型編程

    ? ?? 概念

    ? ?? 變參模板

    ? 函數(shù)式編程

    ? ?? lambda表達(dá)式

    ? 模板元編程


  • 易用性改進(jìn)

    直接表達(dá)做什么?而非描述具體怎么做。易用性改進(jìn)主要包括:

    ? auto 和decltype

    ? 范圍for

    ? 類型別名

    ? 統(tǒng)一初始化

    ? 默認(rèn)成員初始化器

    ? override與final

    ? nullptr

    ? 用戶定義字面量

    ? 構(gòu)造函數(shù)模板參數(shù)推導(dǎo)

    ? 結(jié)構(gòu)化綁定

    ? 條件中的顯式測試

機(jī)器思維

機(jī)器思維是指該語言對機(jī)器底層的微觀構(gòu)造,機(jī)器思維包括:語言構(gòu)造、編譯轉(zhuǎn)換、內(nèi)存模型、運(yùn)行時機(jī)制等。

  • 內(nèi)存管理

    內(nèi)存復(fù)雜性和自由度是C++的主要心智負(fù)擔(dān)(90%)?,F(xiàn)代C++對內(nèi)存管理進(jìn)行了大幅度的改進(jìn),極大地提升了內(nèi)存安全和性能:

    ? 智能指針

    ? ?? unique_ptr

    ? ?? shared_ptr

    ? ?? weak_ptr

    ? 右值引用

    ? 移動語義

    ? 去除不必要的拷貝(NVO)

  • 編譯特性

    編譯期計算可能是C++又一個極致性能追求的優(yōu)勢領(lǐng)地?,F(xiàn)代C++的編譯特性包括:

    ? 模塊

    ? constexpr函數(shù)

    ? 編譯期循環(huán)

    ? 可確保的編譯期求值

    ? 屬性(Attributes)

    ? 常量表達(dá)式if

    ? static_assert編譯器斷


  • 并發(fā)和異構(gòu)計算

    李建忠老師指出:硬件的發(fā)展始終是推動C++語言發(fā)展的源動力。隨著摩爾定律(Moore's Law)和登納德縮放定律(Dennard Scaling)的失效,并發(fā)和異構(gòu)計算將是C++的下一個巨大應(yīng)用領(lǐng)域。


現(xiàn)代C++在這方面的特性改進(jìn)包括:

? 并發(fā)

? 內(nèi)存模型

? 線程和鎖

? future/promise

? 并行算法

? 協(xié)程


03?精進(jìn)路線圖

李建忠老師指出”精通沒有標(biāo)準(zhǔn),但研習(xí)有路徑“,研究掌握C++的路徑,從低到高可以分成1~9級:

  • 1級:掌握常見C++語法和語言構(gòu)造?

  • 2級:掌握4-5種常用的編程范式

  • 3級:清楚編譯器在后面干了什么( under the hood)

  • 4級:清楚運(yùn)行時內(nèi)存模型( under the hood)

  • 5級:熟悉常用OS 內(nèi)核和應(yīng)用API機(jī)制,調(diào)試工具和方法?

  • 6級:對經(jīng)典庫應(yīng)用熟練,熟悉設(shè)計模式

  • 7級:熟悉機(jī)器模型:CPU, Memery, Cache, GPU, Disk, I/O, Process, TCP/IP...

  • 8級:大型類庫設(shè)計經(jīng)驗,駕馭松耦合、靈活性的設(shè)計問題

  • 9級:大型系統(tǒng)設(shè)計經(jīng)驗,駕馭性能、內(nèi)存、規(guī)模等系統(tǒng)問題

04?現(xiàn)代C++的應(yīng)用生態(tài)與發(fā)展

C++已經(jīng)經(jīng)歷了36年的發(fā)展,依然擁有著旺盛的生命力。自2003年以來,在TIOBE編程語言流行榜上常年位于第四位。


C++之父對C++語言的最終目標(biāo)

  • 使用和學(xué)習(xí)上都要比C或當(dāng)前的C++容易得多

  • 完全類型安全—沒有隱式類型違規(guī),沒有懸空指針

  • 完全資源安全 —沒有泄漏,不需要垃圾收集器

  • 為其構(gòu)建工具要相對簡單—不要有宏

  • 跟當(dāng)前C++一樣快或更快—零開銷原則

  • 性能可預(yù)測—適用于嵌入式系統(tǒng)

  • 表達(dá)力不亞于當(dāng)前的C++—很好地處理硬件

現(xiàn)代C++語言的空間巨大

C++語言的發(fā)展取決于系統(tǒng)軟件的需求。隨著計算機(jī)體系結(jié)構(gòu)迎來范式轉(zhuǎn)換,系統(tǒng)級軟件將迎來爆發(fā)式增長,現(xiàn)代C++相關(guān)生態(tài)將迎來巨大的發(fā)展機(jī)會:

  • 異構(gòu)計算帶來的巨大機(jī)會?

  • 人工智能對性能只會索要更多?

  • 嵌入式系統(tǒng)軟件規(guī)模越來越大?

  • 大型工業(yè)軟件計算需求井噴

  • ......




直播回顧丨現(xiàn)代C++的文藝復(fù)興—暨《現(xiàn)代C++白皮書》發(fā)布的評論 (共 條)

分享到微博請遵守國家法律
肥城市| 津市市| 南召县| 漳州市| 大丰市| 连城县| 海伦市| 手游| 汽车| 忻城县| 容城县| 襄樊市| 伊宁市| 新绛县| 岗巴县| 安庆市| 铜陵市| 锡林郭勒盟| 清水县| 平凉市| 资中县| 泸西县| 白朗县| 三门峡市| 芦山县| 铜川市| 礼泉县| 永嘉县| 雅江县| 尉氏县| 霍邱县| 万山特区| 凤城市| 大宁县| 红桥区| 精河县| 虞城县| 松原市| 靖边县| 龙泉市| 宁乡县|