倉頡程序設計語言
劉安戰
相關主題
商品描述
"本書是一本系統闡述倉頡程序設計語言的技術書籍,倉頡程序設計語言是一門由華為公司研發的國產電腦高級編程語言。 全書共15章,全書從最簡單的倉頡程序開始,全面覆蓋了倉頡程序設計語言的基本語法語義規則。第1章為引言,簡單介紹了倉頡語言的歷史和特點。第2章介紹了第1個倉頡程序。第3、4章介紹了倉頡語言的基本類型、運算符、基本輸入輸出和控制結構等。第5章介紹了函數。第6-9章介紹了倉頡語言中的高級類型和類型關系,包括記錄、枚舉、類、接口、繼承等。第10章介紹了泛型和常用集合,泛型是對類型的進一步抽象。第11章介紹了屬性和擴展。第12章介紹了多線程和異常處理,多線程為處理並發問題提供了基礎。第13章介紹了包,包管理為組織多文件及大型項目提供了機制保障。第14、15章是自動微分和元編程,自動微分為倉頡語言在人工智能應用中提供了更高的開發效率,元編程則使倉頡語言具有通過代碼生成代碼和修改代碼的能力。 本書在介紹倉頡語言特性的同時,配備了大量的示例代碼說明,使讀者在學習倉頡程序語言規則上更容易理解,書中示例代碼均進行過測試。 本書可作為開發者瞭解認識倉頡編程語言的入門書籍,可作為大學電腦、軟件專業相關課程的教材或參考書,還可作為倉頡程序設計工程師的參考書籍。"
目錄大綱
目錄
第1章 引言 1
1.1 倉頡語言的起源 1
1.2 倉頡語言的特點 1
1.3 本書面向的讀者 2
第2章 第1個倉頡程序 3
2.1 倉頡Hello World程序 3
2.2 編譯和運行 4
2.2.1 在Ubuntu系統下編譯運行 4
2.2.2 在Windows 10系統下開發倉頡程序 6
2.3 倉頡程序包含的元素 16
第3章 基本類型和運算符 18
3.1 常量和變量 18
3.1.1 常量 18
3.1.2 變量 21
3.2 數據類型 22
3.3 運算符 26
3.3.1 算術運算符 26
3.3.2 關系運算符 27
3.3.3 邏輯運算符 28
3.3.4 其他運算符 28
第4章 基本輸入/輸出和控制結構 31
4.1 基本輸出函數 31
4.2 終端輸入/輸出 32
4.2.1 終端輸入 33
4.2.2 終端輸出 34
4.3 控制結構 35
4.3.1 順序結構 35
4.3.2 選擇結構 36
4.3.3 循環結構 40
第5章 函數 46
5.1 函數定義 46
5.1.1 一般函數定義 46
5.1.2 嵌套函數定義 50
5.1.3 重載函數定義 51
5.2 函數調用 51
5.2.1 一般函數調用 52
5.2.2 遞歸函數調用 54
5.3 函數高級特性 55
5.3.1 函數類型 55
5.3.2 函數類型作為變量類型 56
5.3.3 函數類型作為返回類型 56
5.3.4 函數類型作為形參類型 57
5.3.5 Lambda表達式 57
第6章 結構和枚舉類型 59
6.1 結構類型 59
6.1.1 定義結構類型 59
6.1.2 創建使用結構 60
6.1.3 結構成員 61
6.1.4 訪問控制 66
6.1.5 結構定義限制 68
6.2 枚舉類型 69
6.2.1 枚舉類型的基本用法 69
6.2.2 枚舉類型的更多用法 72
6.2.3 Option類型 73
第7章 類和對象 76
7.1 定義類 76
7.2 創建使用類對象 77
7.3 類的成員 79
7.4 可見性和寫限制 85
第8章 繼承和接口 87
8.1 繼承 87
8.1.1 定義派生類 87
8.1.2 繼承中的構造函數 90
8.1.3 訪問權限 91
8.1.4 重載、覆蓋和重定義 93
8.2 接口 95
8.2.1 定義接口 95
8.2.2 接口繼承 97
8.2.3 接口實現 98
8.2.4 Any接口 100
第9章 類型關系 102
9.1 類和子類型 102
9.2 接口和子類型 103
9.3 函數使用中的子類型 104
9.4 類型轉換和類型判斷 106
9.4.1 數值類型之間的轉換 106
9.4.2 字符和整型之間的轉換 107
9.4.3 is和as表達式 107
9.5 類型別名 108
第10章 泛型和常用集合類型 110
10.1 泛型 110
10.1.1 泛型類型 110
10.1.2 泛型函數 114
10.1.3 泛型約束 116
10.2 常用集合類型 118
10.2.1 Array 119
10.2.2 ArrayList 121
10.2.3 HashSet 122
10.2.4 HashMap 124
第11章 屬性和擴展 126
11.1 屬性 126
11.1.1 定義屬性 126
11.1.2 使用屬性 129
11.2 擴展 131
11.2.1 擴展的定義 131
11.2.2 擴展限制和使用 133
11.2.3 擴展的作用域 135
第12章 多線程和異常處理 138
12.1 多線程 138
12.1.1 創建線程 138
12.1.2 等待線程 139
12.1.3 線程同步 141
12.2 異常處理 151
12.2.1 異常類型 152
12.2.2 拋出和處理異常 153
第13章 包 158
13.1 聲明包 158
13.2 包中頂層聲明的可見性 160
13.3 包的導入 162
13.4 多包項目編譯 165
13.5 main函數參數 168
第14章 自動微分 169
14.1 微分技術簡介 169
14.2 簡單的函數自動微分 170
14.3 可微類型 171
14.4 可微函數 172
14.4.1 頂層可微函數 172
14.4.2 非頂層可微函數 174
14.5 自動微分API 176
14.5.1 @Grad表達式 176
14.5.2 @ValWithGrad表達式 178
14.5.3 @AdjointOf表達式 178
14.5.4 stopGradient函數接口 179
14.6 高階微分 180
第15章 元編程 181
15.1 元編程簡介 181
15.2 元編程類型和引述表達式 182
15.2.1 Token類型 182
15.2.2 Tokens類型 183
15.2.3 引述表達式 185
15.3 宏 187
15.3.1 宏定義和調用 187
15.3.2 非屬性宏 188
15.3.3 屬性宏 189
15.3.4 宏嵌套 191
15.4 元編程示例 193
附錄A 倉頡語言中的關鍵字 196
附錄B 倉頡語言中的運算符 197
附錄C 倉頡語言提供的包及主要功能說明 199