物件導向 ANSI-C 與 Python 的結合

物件導向 ANSI-C 與 Python 的結合

作者: 高煥堂
出版社: 廣悅
出版在: 2019-01-29
ISBN-13: 9789868494671
ISBN-10: 9868494672
總頁數: 520 頁





內容描述


本書所介紹的物件導向ANSI-C語言並不是一個新的語言,它只運用單純ANSI-C語言的巨集(Macro)技巧,實現了物件導向的基本技術,所以簡稱為OOPC語言。大家都知道「物件導向Python + C/C++語言」是個美好的結合。然而「物件導向ANSI-C + Python」更是力與美的完美組合。
近年來,嵌入式(Embedded)軟體應用愈來愈廣,如數位家電、手機、數字化汽車等。而嵌入式軟開發所使用的語言中,C語言仍約佔80%之多,其中ANSI-C在業界佔有極重要的地位。
此外,AI(人工智慧)的應用愈來愈廣,軟體品質大大影響了智慧系統的穩定和可靠度,因之如何提升ANSI-C程式的簡潔性、易讀性及重覆使用性,乃是當今軟體業的熱門話題。也許你會問到:已經有了C++語言,為何還需要OOPC呢?其答案是:C++語言有些貪心,將整套的物件導向技術涵括進去,導致C++的效率(例如其依賴於Virtual Table機制)往往遠比單純C語言慢了許多。此外,這些巨集在編譯階段就被翻譯為單純C程式碼了,仍然保持其單純C的高效率,符合嵌入式&AI軟體環境之需要。
本書由淺入深分為五篇(共21章),希望本書能陪伴你馳聘於嵌入式&AI領域之中,並鴻圖大展。


目錄大綱


第一篇 認識ANSI-C語言
第1 章 AI時代的力與美組合
1.1 簡介開源LW_OOPC
1.2 從物件導向看OOPC
1.3 從〝self〞看Python與OOPC
第2 章 認識物件導向ANSI-C
2.1 簡介ANSI-C語言
2.2 簡介LW_OOPC:替ANSI-C黃袍加身
2.3 ANSI-C的基本組成:函數與變數
第3 章 C的基本資料型態
3.1 簡介資料型態
3.2 整數型態
3.3 無正負號整數
3.4 整數的輸出格式
3.5 字元型態
3.6 浮點數型態
第4 章 C的資料運算
4.1 簡介資料運算
4.2 算術與指定運算
4.3 關係運算
4.4 邏輯運算
4.5 算術指定運算
4.6 加1 及減1 運算
4.7 位址運算
4.8 逐位元運算
第5 章C的決策與迴圈
5.1 邏輯運算與決策
5.2 巢狀 if 指令
5.3 多選1 的抉擇
5.4 while 迴圈
5.5 for迴圈
5.6 do迴圈
第 6 章C的指標
6.1 指標是什麼 ?
6.2 傳遞指標參數
6.3 函數回傳指標
6.4 函數指標
第 7章 C的結構(struct)
7.1 什麼是結構(struct)
7.2 結構的指定運算
7.3 結構指標
7.4 動態記憶體分配
7.5 組合
第 8章C的儲存種類
8.1 變數的儲存種類
8.2 靜態函數
8.3 extern種類
第 9 章 C的陣列及字串
9.1 陣列的意義
9.2 一維陣列
9.3 一維陣列與指標
9.4 二維陣列與多維陣列
9.5 二維陣列與指標
9.6 給予陣列初值
9.7 使用字串
第10 章C的前置處理程式
10.1 前置處理程式的工作
10.2 使用巨集
10.3 含入標頭檔
10.4 有條件的編譯
 
第二篇 介紹物件導向觀念及OOPC
第 11章 認識物件(Object)
11.1 自然界之物件
11.2 軟體物件
11.3 物件與函數
11.4 物件與類別
11.5 物件指標
11.6 建構式
11.7 類別設計之實例說明
第 12章 物件溝通方法
12.1 「訊息傳遞」溝通方法
12.2 「訊息傳遞」範例(一) --- 以Toggle Light電燈為例
12.3 以OOPC實現:使用Turbo C
12.4 以OOPC實現:使用VC++ 2005
12.5 「訊息傳遞」範例(二) --- 以冰箱小燈控制為例
第 13章 物件溝通實例
13.1 以向量(Vector)類別封裝一維陣列
13.2 以矩陣(Matrix)類別封裝二維陣列
第三篇 如何規劃精緻的介面
第 14 章 認識介面(Interface)
14.1 如何定義介面?
14.2 多個類別實現同一介面
14.3 以介面實現多型性(Polymorphic)
14.4 一個類別實現多個介面
第 15 章 介面與樣式:降低物件間之相依性
15.1 物件相依性:細節設計優劣之評量
15.2 樣式觀念
15.3 軟體設計樣式
15.4 簡介IoC樣式
15.5 IoC與COR樣式的攜手合作
 
第四篇 OOPC的嵌入式實用範例
第 16 章 LW_OOPC實用範例之一
16.1 認識「錄音」概念和和技術
16.2 單純「錄音」的範例分析
16.3 「錄音/播放」範例之分析
16.4 「錄音/播放」範例之實作:使用LW_OOPC
第 17 章 LW_OOPC實用範例之二
17.1 什麼是半加器?
17.2 設計「位元計算機」
17.3 實現位元計算機:使用LW_OOPC
第 18 章 LW_OOPC實用範例之三
18.1 形形色色的塗鴉程式
18.2 塗鴉程式範例說明
18.3 塗鴉系統分析與設計
18.4 塗鴉程式之實作:使用LW_OOPC
 
第五篇 OOPC與Python力與美的組合
第 19 章 AI機器學習初步
19.1 回顧AI發展的歷史
19.2 AlphaGo的驚人學習能力
19.3 範例:一隻老鼠的探索及學習
19.4 記錄老鼠的探索選擇及結果
19.5 老鼠當教練:訓練AI機器人
 
第 20 章 以C和Python寫Perceptron程式
20.1 以C和Python表達數學式
20.2 展開第1筆資料的訓練
20.3 進行更多筆資料的訓練
20.4 加入學習率(Learning Rate)
20.5 增添一個Training類別
20.6 一個更周詳的Perceptron程式
 
第 21 章 C與Python的美好組合
21.1 銜接上一章的CX20-training模組
21.2 撰寫門面模組,並打包成DLL
21.3 撰寫Python主程式
21.4 OOPC+Python應用範例(一)
21.5 OOPC+Python應用範例(二)
21.6 OOPC+Python應用範例(三)




相關書籍

Data Analytics for Organisational Development: Unleashing the Potential of Your Data

作者 Tan Amy B. C. Kaufmann Uwe H.

2019-01-29

深度學習與信號處理: 原理與實踐

作者 郭業才

2019-01-29

SAS Data Analytic Development: Dimensions of Software Quality (Wiley and SAS Business Series)

作者 Troy Martin Hughes

2019-01-29