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

高煥堂

立即出貨 (庫存 > 10)

買這商品的人也買了...

相關主題

商品描述

本書所介紹的物件導向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〞看PythonOOPC

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 組合

8C的儲存種類

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 IoCCOR樣式的攜手合作

 

第四篇 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

 

第五篇 OOPCPython力與美的組合

19 AI機器學習初步

19.1 回顧AI發展的歷史

19.2 AlphaGo的驚人學習能力

19.3 範例:一隻老鼠的探索及學習

19.4 記錄老鼠的探索選擇及結果

19.5 老鼠當教練:訓練AI機器人

 

20 CPythonPerceptron程式

20.1 CPython表達數學式

20.2 展開第1筆資料的訓練

20.3 進行更多筆資料的訓練

20.4 加入學習率(Learning Rate)

20.5 增添一個Training類別

20.6 一個更周詳的Perceptron程式

 

21 CPython的美好組合

21.1 銜接上一章的CX20-training模組

21.2 撰寫門面模組,並打包成DLL

21.3 撰寫Python主程式

21.4 OOPC+Python應用範例()

21.5 OOPC+Python應用範例()

21.6 OOPC+Python應用範例()