C++語義和性能分析

C++語義和性能分析

《C++語義和性能分析》是2017年華中科技大學出版社出版的書籍,作者是楊鐮。

基本介紹

  • 中文名:C++語義和性能分析
  • 作者:楊鐮
  • 出版時間:2017年11月
  • 出版社華中科技大學出版社
  • 頁數:224 頁
  • ISBN:9787568033299
  • 定價:43.8 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,作者簡介,目錄,

內容簡介

本書從C++的發展歷史、類型系統、語義以及性能的視角,給讀者展現了C++語言的基本理念和發展主線。
一方面用抽象的理論框架,比如集合論、有限自動機、類型和類型系統等詮釋了C++的理論方面;另一方面又從語義著手,從底層操作剖析了C++的實現方法。使讀者既能站得高、看得遠,又能把握C++的實質,從而全面掌握C++語言。
本書作者有20多年的C++開發經驗,在微軟總部工作期間,用C++參與開發過包括Windows XP系統在內的許多知名商用軟體系統,在C++語言上有著深厚的功底。在本書作者看來,理解C++的精髓和靈魂,必須從C++類型系統著手,這樣才能寫出性能優異而又易於維護的系統。另外,從C++11到C++17的最新構造,都沒有脫離C++類型系統的主體思想。熟讀本書可以作為學習C++17的前奏。

作者簡介

楊鐮,1985年畢業於華中工學院計算機系。1988年赴美留學,獲波特蘭州立大學計算機科學碩士學位。1995年加盟微軟總部,在微軟研究院從事軟體安全和性能研發方面的工作。在微軟工作的15年裡,他先後參加了Windows VistaWindows Server 2008MSN以及Bing的研發,在軟體工程、軟體性能最佳化、軟體安全等領域有很深厚的功底和實踐。他在不同的國際會議上發表了多篇論文,內容涉及軟體工程、機器學習和高級語言。在繁忙的工作之餘,他是滑雪高手,對如何提高滑雪板的性能也頗有研究。

目錄

目錄
第1章 C++簡史 1
1.1 C++ 的歷史背景 1
1.2 C++大事記 5
1.2.1 1979年:C with classes誕生 5
1.2.2 1983年8月:C++正式命名 6
1.2.3 1986年:《The C++ Programming Language》出版 7
1.2.4 1987年:C++2.0發布 7
1.2.5 1990年:《The Annotated C++ Reference Manual》出版 8
1.2.6 1994年:STL誕生 8
1.2.7 1998年:ISO C++ 正式通過 9
1.2.8 2011年:C++11頒布 9
1.3 C++的進化和改進理念 10
1.4 C++的歷史貢獻及未來 11
第2章 程式設計語言的語義 14
2.1 哲學基礎 14
2.2 語義的形式化描述 14
2.3 操作性語義 16
2.4 語義描述涉及的主要元素 17
第3章 C++類型系統 19
3.1 類型系統簡介 19
3.2 數據類型的表達規則 21
3.2.1 基本數據類型的表達規則 22
3.2.2 用戶自定義類型的表達規則 23
3.3 類型實例的構造規則 25
3.3.1 類型和類型實例 25
3.3.2 類型實例的構造和析構 27
3.4 類型的操作規則 33
3.4.1 context 33
3.4.2 函式 34
3.4.3 過程 35
3.4.4 過程函式 35
3.4.5 方法 36
3.4.6 特別討論:過程方法的自動機詮釋 37
3.4.7 運算符 38
3.5 C++類型系統的特徵 39
3.5.1 特徵 1:支持OOP 39
3.5.2 特徵2:強靜態類型 40
3.5.3 特徵3:UDT是一等公民 41
3.5.4 特徵4:類型清除 45
3.5.5 特徵5:支持模板 49
3.5.6 特徵6:指針和REF 53
3.5.7 特徵7:類型修正符 60
3.6 其他(非C++)類型系統 62
3.7 類型系統的意義和用途 62
3.7.1 程式的精確性保障 62
3.7.2 性能的可保障性 64
第4章 C++變數語義 66
4.1 變數簡介 66
4.2 C++變數的屬性 68
4.2.1 C++變數的存儲屬性 68
4.2.2 C++ 變數的值語義 95
4.2.3 C++變數的自洽性 106
4.2.4 C++變數的總分性 109
4.2.5 C++變數的多態性 112
4.3 臨時變數 113
第5章 C++對OOP的支持 116
5.1 object的記憶體布局 117
5.2 繼承 119
5.2.1 繼承object的記憶體布局 123
5.2.2 多繼承 128
5.2.3 繼承類object的語義規則 130
5.3 多態類和多態變數 137
5.4 C++對抽象的支持 139
第6章 C++ 性能分析 141
6.1 性能分析原理 141
6.2 算法的重要性 149
6.3 RAM記憶體讀取的性能 153
6.3.1 單執行緒heap管理器 154
6.3.2 定製化heap管理系統 157
6.4 關於快取 164
6.5 關於I/O 175
6.6 C++的特殊性能問題 176
6.6.1 臨時變數的性能問題 176
6.6.2 STL 容器 180
6.6.3 Type Erasure 185
6.6.4 異常處理 187
6.6.5 繼承的性能問題 194
6.6.6 直接函式、間接函式、內聯函式 200
參考文獻 204

相關詞條

熱門詞條

聯絡我們