2021--2022一學期20212406《網路空間安全專業導論》第三週學習總結
第六章 低階程式語言設計與虛擬碼
一.計算機操作:儲存,檢索,處理。
二.機器語言---由計算機直接使用二進位制編碼指令構成的語言
1.計算機指令:每個處理器都有自己專用的機器指令集合,是處理器唯一能夠執行的指令。每個機器語言指令只能執行一個非常低階的任務,大多數程式是用高階語言編寫的,然後轉化為機器語言。
2.Pep/9虛擬機器---為了模擬真實機器的重要特徵而設計的假想機器。
(1)字長2位元組,16位,七個暫存器--程式計數器:包含下一條即將被執行的指令的地址
--指令暫存器:包含正在被執行的指令的一個副本
--累加器:用來儲存資料和運算的結果
(2)回顧:一個位元組能夠表示的最大十進位制數是255,二進位制為11111111,十六進位制為FF。
一個字(16位),最大數十進位制為65535,二進位制1111111111111111,十六進位制FFFF。
如果要表示正負:-7FFF,+7FFF,即-32767,+32767
(3)指令格式=8位指令說明符+16位運算元說明符
指令說明符:說明要執行什麼操作和如何解釋運算元的位置
運算元說明符:存放運算元本身或運算元的地址。---4位操作程式碼+1位暫存器說明符+3位定址模式(000=立即定址、001=直接定址)
特別的---一元指令:沒有運算元說明符,長度為一位元組。
(4)輸入/輸出:
記憶體映像輸入/輸出---輸入與輸出裝置與主存中特定的、固定的地址聯絡起來。
三.組合語言---一種低階語言,用助記碼錶示特定計算機的機器語言指令=0x+十六進位制數+,+定址模式
(1)彙編器---把組合語言翻譯成機器程式碼的程式
彙編器指令---翻譯程式使用的語言
註釋---為程式讀者提供的解釋性文字
(2)分支---指出執行下一條指令的指令
標籤---對記憶體位置起的名字,可以將這個名字當作運算元。
四.表達演算法
(1)演算法---解決方案的計劃或概要,或解決問題的邏輯步驟順序。
虛擬碼---一種表達演算法的語言。
(2)虛擬碼的功能
變數---如變數sum用來表示一個集合中其他值的和
賦值Set sum to sum+num
輸入/輸出Write
選擇IF ELSE IF
重複Set limit to number of values to sum
WHILE(counter<limit)---布林表示式
五.寫虛擬碼
桌面檢查---在紙上查整個過程
六.測試
程式碼覆蓋測試法(明箱測試法)---通過執行程式碼中所有語句測試程式或子程式的測試方法
資料覆蓋測試法(暗箱測試法)---把程式碼作為一個暗箱,基於所有可能的輸入資料測試程式或子程式的測試方法
第七章 問題求解與演算法設計
一.如何解決問題
1.提出問題
2.尋找熟悉的情況
3.分治法---把大的問題分解成能夠單獨解決的小問題
4.演算法---在有限的時間裡用有限的資料解決問題或子問題的明確指令
5.計算機問題求解過程:
分析和說明階段---演算法開發階段(開發演算法、測試演算法)---實現階段(編碼、測試)---維護階段(使用、維護)
二.測試演算法---需要在開發過程的早期階段進行
三.有簡單變數的演算法
1.帶有選擇的演算法 ELSE IF
2.帶有迴圈的演算法
(1)計數控制迴圈---指定過程重複的次數
(2)事件控制迴圈---由迴圈體自身內發生的事件控制的
3.巢狀結構---控制結構嵌入另一個控制結構的結構,又叫巢狀邏輯。
4.抽象步驟---細節仍未明確的演算法步驟
具體步驟---細節完全明確的演算法步驟
5.陣列---同構專案的有名集合(搜尋、排序、處理)
記錄---異構專案的有名集合
集合---包含整數、實數、字串等
四.搜尋演算法
1.有序陣列中的順序搜尋
2.二分檢索---在有序列表中查詢專案的操作,通過比較操作排除大部分檢索範圍
五.排序
1.選擇排序
2.氣泡排序
3.插入排序
六.遞迴演算法---演算法呼叫它本身的能力
七.幾個重要思想
1.資訊遮蔽---隱蔽模組的細節以控制對這些細節的訪問的做法
2.抽象---複雜系統的一種模型,只包括對觀察者來說必需的細節
(1)資料抽象---把資料的邏輯檢視和它的實現分離開
(2)過程抽象---把動作邏輯檢視和它的實現分離開
(3)控制抽象---把控制結構的邏輯檢視和它的實現分離開
控制結構---用來改變正常的順序控制流的語句
3.識別符號---資料和過程的一個名字