天天看點

《計算機科學的基礎》

1. 資料模型。資料特征的抽象,用來描述問題。我們已經提到了兩種模型:邏輯和圖,而在本書中還會看到很多其他的模型。

2.資料結構。用來表示資料模型的程式設計語言結構。例如,C語言提供了内置的抽象,比如結構和指針,使我們能夠建構資料結構,表示像圖這類的複雜抽象。

3.算法。操作用資料模型抽象、資料結構等形式表示的資料,進而擷取解決方案的技術。

4.

我們在兩種情況下會提到資料模型。像本章開頭讨論的圖這樣的資料模型,是常用于協助

形成問題解決方案的抽象。

資料模型還與程式設計語言及計算機相關。比如,C語言的資料模型就包含諸如字元、多種長

度的整數以及浮點數這類的抽象。

5.

當手頭問題的資料模型不能直接用程式設計語言内置的資料模型表示時,我們就必須使用該語

言所支援的抽象來表示所需的資料模型。為此,我們研究了資料結構,将程式設計語言中沒有顯式

包含的抽象,以該語言的資料模型表示出來。不同的程式設計語言可能有着大不相同的資料模型。

例如,與C語言不同,Lisp語言直接支援樹,而Prolog語言則内置了邏輯資料模型。

6.

算法是對可機械執行的一系列步驟精準而明确的規範。用來表示算法的可以是任何一種可

被常人了解的語言,不過在計算機科學領域,算法多用程式設計語言正式地表現為計算機程式,或

用程式設計語言混合英語語句的非正式風格來表示。

7.

算法的其他方面也很重要,特别是簡易性。理想情況下,算法應該易于了解,并易于轉變

成可運轉的程式。而且,懂得相應知識的人在閱讀了實作該算法的代碼後,應該能了解由該算

法轉變而來的程式。不過快速和簡易往往是不能兩全的,是以我們必須要明智地選擇算法。

8.

任何數學概念都可稱為資料模型。 而在計算機科學領域, 資料模型通常包含以下兩個方面。

(1) 對象可以采用的值。例如,很多資料模型包含具有整數值的對象。資料模型的這個方面

是靜态的,它告訴我們對象能接受哪些值。程式設計語言資料模型的這一靜态部分通常被稱為類型

系統。

(2) 資料的運算。 例如, 我們常常會對整數執行加法這樣的運算。 模型的這一方面是動态的,

它告訴我們改變值和建立新值的方式。

9.

程序是指程式的獨立執行。程序接受流作為輸入,并産生流作為輸出。在UNIX系統中,

程序可以通過管道連接配接,讓一個程序的輸出作為下一個程序的輸入。這種程序組合可看作有着

自己輸入輸出的獨立程序。

10.

想想如下UNIX指令行。

bc|word|speak

符号|表示管道,該操作使符号左邊程序的輸出成為符号右邊程序的輸入。程式bc是桌面

電腦,接受算術表達式(例如2+3)作為輸入,并生成答案5作為輸出。程式word用來将數字

轉換成單詞,而speak則将單詞轉換成音素序列,接着通過揚聲器将語音合成器合成的聲音播

放出來。 這三個程式通過管道連接配接起來, 使這條UNIX指令行成為了一個程序, 并表現為一個 “會

說話的”桌面電腦。它接受算術表達式作為輸入,并産生說出來的答案作為輸出。本示例還

可以說明,将複雜的任務處理成多個簡單功能的組合,實作起來可能會更加簡單。

11.

12.

13.

14.

15.

16.

17.

18.

繼續閱讀