《計算機科學的基礎》

1. 數據模型。數據特徵的抽象,用來描述問題。咱們已經提到了兩種模型:邏輯和圖,而在本書中還會看到不少其餘的模型。算法

2.數據結構。用來表示數據模型的編程語言結構。例如,C語言提供了內置的抽象,好比結構和指針,使咱們可以構建數據結構,表示像圖這類的複雜抽象。編程

3.算法。操做用數據模型抽象、數據結構等形式表示的數據,從而獲取解決方案的技術。數據結構

4.編程語言

咱們在兩種狀況下會提到數據模型。像本章開頭討論的圖這樣的數據模型,是經常使用於協助
造成問題解決方案的抽象。spa

數據模型還與編程語言及計算機相關。好比,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.

19.

20.

相關文章
相關標籤/搜索