2019-2020-1學期 20212318 《網路空間安全導論》第四周學習總結
阿新 • • 發佈:2021-10-17
《計科概論》第8、9章自學筆記
主要描述了計算機的程式設計層,我們完成了機器語言到組合語言再到虛擬碼的學習。
第八章——抽象資料型別與子程式
8.1 抽象資料型別
- 抽象資料型別(Abstract Data Type,ADT):屬性(資料和操作)明確地與待定現實分離的容器
- 資料結構(data structure):一種抽象資料型別中的複合資料域的實現。
- 容器(container):存放和操作其他物件的物件
8.2 棧
棧是一種抽象複合結構,只能從一端訪問棧中的元素。它可以在第一個位置插入元素,也可以刪除第一個元素。
另一種描述棧的訪問行為的說法是刪除的項總是在棧中時間最短的專案
8.3 佇列
佇列和棧都是抽象複合結構,佇列中的專案從一端輸入,另一端輸出。
另一種描述佇列的訪問行為的說法是刪除的項總是在棧中時間最長的專案
8.4 列表
列表在程式中與在現實生活中一樣很自然的出現了。列表也可以被形象化為鏈式結構,鏈式結構以結點的概念為基礎。一個節點由兩部分組成:使用者的資料和指向列表的下一個節點的連結或指標。
8.5 樹
列表、棧、佇列只是模擬了一種資料關係,他們中的專案可以看作是一個挨著一個,因此更復雜的關係需要更復雜的結構來表示,需要一個分層體系結構,而這種分層體系被稱為樹
- 二叉樹(Binary tree):具有唯一起始節點(根節點)的抽象複合結構,其中每個節點可以有兩個子女節點,根節點和每個節點之間都有且只有一條路徑。
- 根(root):樹中唯一的開始節點。
- 葉節點(leaf node):沒有子女的樹節點
8.6 圖
樹是表示存在的體系結構中關係的有效方法,一個節點至多隻有一個指向它的節點,如若去除這種約束,就得到了另一種資料結構——圖
- 圖(graph):由一組節點和一組把節點相互連線起來的邊構成的資料結構。
- 頂點(vertex):圖中的節點。
- 邊/弧(edge/arc):表示圖中兩個節點的連線定點對。
- 無向圖(undirected graph):其中的邊沒有方向的圖。
- 有向圖(directed graph):其中的邊是從一個頂點指向另一個頂點(或同一個頂點)的圖。
- 鄰頂點(adjacent certice):通過邊連線起來的兩個頂點。
- 路徑(path):連線圖中兩個頂點的一系列頂點。
8.7 子程式
- 引數列表:程式中的兩部分之間的通訊機制。
- 形參:列在子程式名後的括號中的識別符號。
- 實參:子程式呼叫中列在括號中的識別符號。
- 值參:由呼叫單元傳入實參的副本(寫在留言板上)的形參。
- 引用引數:由呼叫單元傳入實參的地址(寫在留言板上)的形參。
第九章-面向物件設計與高階程式設計語言
第一章中曾介紹,隨著時間的推移如何圍繞硬體建立不同層次的程式設計語言,從而簡化碼農程式設計師的工作。
第六章中介紹了機器碼,然後出現了助記憶碼以及表示指令的組合語言。雖然組合語言前進了一步,但是對於不同機器,程式設計師仍然需要需要記住不同的機器指令,故誕生了高階語言。
9.1 面向物件的方法
- 物件:在問題背景中相關的事物或實體。
- 物件類/類:一組具有相似的屬性和行為的物件的描述。
- 域:類中的特定項,可以是資料或子程式。
- 方法:定義了類的一種行為的特定演算法。
- 封裝:把資料和動作集中在一起,使資料和動作的邏輯屬性與他們實現細節分離。
9.2 翻譯過程
- 編譯器:把用高階語言編寫的程式翻譯成機器碼的程式。
- 直譯器:輸入用高階語言編寫的程式,指導計算機執行每個語句指定的動作的程式。
- 位元組碼:編譯Java原始碼使用的標準機器語言。
9.3 命令式範型
- 包括命令式範型和宣告式範型。
9.4 高階程式設計語言的功能性
本節涵蓋了
布林表示式
資料歸類
輸入/輸出結構
控制結構
9.5 面嚮物件語言的功能性
封裝
類
繼承
多型