《Formal Methods》第二章學習心得

2021-10-23 14:59:57 字數 2255 閱讀 5760

記錄一下《formal methods》第二章的學習心得

本章節主要介紹了gc語言,分:語法、語義、程式圖、可替代部分以及擴充套件的控制結構這幾個方面。

第一部分語法,主要講了兩個比較重要的語法點,賦值符號(:=)和跳過符號(skip),其中賦值符號的作用是對變數進行賦值,skip結合後邊對邊(edge)的定義,指得是從一條邊的起點跳到終點。命令可以是三種不同的組成方式,按照寫定的順序執行和在條件語句處進行判定以及迴圈。書中c和gc主要定義了操作和條件的集合。根據語法可以做出相應的語法樹,同時語法樹不需要括號就可以表示語句的執行順序。

第二部分展開介紹了程式圖,首先引入了邊edge的概念,表示對程式圖的一種限制,同時給出了起始節點和終止節點的定義。二者和語句中的內容共同組成了程式的邊集。

如果我們要在兩個被執行的語句中進行選擇,那我們就使用相同的源節點和目標節點,複雜一些的類似運用到do語句的時候需要使用迴圈,運用到迴圈結構時,我們將源節點和目標節點作為乙個節點。(對於曲邊的理解是,不確定是否要執行動作,如果滿足判定條件則執行)

第三部分介紹了gc語言的語義,其中需要定義乙個語義域來反應變數值的範圍,同時還需要定義語義函式來表達語句動作的含義。在定義布林表示式時運用了兩個變數a、b。a本身或者組合形成算數表示式,結果為具體數值,b本身或者組合形成布林表示式,結果為布林值。

補充:&&和&的區別在於,&&第乙個條件不成立自動退出,若成立再繼續檢查後續的條件;&則檢查所有條件看是否同時成立。

後邊對於邊的定義增加了一部分,動作可以放在初始節點和終止節點中間,並且和邊結合來共同定義語句。同時也可以指代陣列,陣列下標同樣適用邊定義來表示,兩個組合起來即可表示陣列。

第四部分介紹gc語言的語句中可替代的部分。重點介紹了三種結構,第一種deterministic version,其中引入了乙個引數d,用來代表判斷結果,每做一次判斷就將判斷結果儲存到d中,並以此重新組成邊定義的語句,這樣寫能夠避免語義函式的定義域與其他語義函式的定義域相交,產生不必要的歧義。

第二種evolving version中直接更為詳細的羅列出了除了b1和b2之後的其他情況,這樣就使得程式的判定條件能夠完全覆蓋所有情況。

第五部分介紹了幾種其他的控制結構,首先介紹了兩種迴圈控制命令,break和continue,其中break指的是迴圈執行到break語句時終止並退出迴圈,繼續迴圈之後的動作。continue語句則是繼續到迴圈開始的地方執行。在構造邊的時候為了表示出來這兩個控制命令,需要額外加入兩個節點來更好的表示遇到控制命令後程式的執行順序,這兩個控制命令主要應用在do迴圈當中,其它迴圈不需要使用。

後邊介紹了乙個巢狀在do迴圈外的try catch結構,其中進入結構之後,do迴圈完成動作後經過throw命令返回出乙個值,根據返回值比對catch中的值從而執行catch中對應的動作。在構造邊定義的時候需要加入γ來指代乙個名詞表,表中包含catch所對應的名詞,當throw返回值對應之後繼續進行catch中的動作。其中最為複雜的e』和γ』指的是加入try catch語句之後的動作和條件環境,γ』是指γ逐漸生成的乙個過程,可以將γ'理解為生成γ過程的中間變數,當程式執行到catch語句之後開始檢索catch後對應的名詞,並將其輸入γ』中,逐漸生成完整的γ即名詞表,後邊在執行throw e時已有完整的γ表,因此可以進行對應,從而執行完整的程式。

第二冊第二單元總結

控制對檔案的訪問 目錄 讀取檔案許可權 設定許可權列表 裝置許可權列表載入 一.許可權列表的讀取 kiosk foundation0 desktop getfacl file file file 檔名稱 owner kiosk 檔案所有人 group kiosk 檔案所有組 user rw 使用者許...

第二章 第二節 注釋

零 怎麼編寫注釋 編寫注釋的方式有三種 1.以 開頭 2.以三個 開頭和結尾 3.以三個 開頭和結尾 定義乙個字串變數 name 張三 定義乙個函式 defgetname return name defsetname n param n 姓名 return name n defsetage age ...

Git學習第二章第二節

你不斷對檔案進行修改,然後不斷提交修改到版本庫里,就好比玩rpg遊戲時,每通過一關就會自動把遊戲狀態存檔,如果某一關沒過去,你還可以選擇讀取前一關的狀態。有些時候,在打boss之前,你會手動存檔,以便萬一打boss失敗了,可以從最近的地方重新開始。git也是一樣,每當你覺得檔案修改到一定程度的時候,...