第5章命令式程序語義

第5章命令式程序語義

ID:21340618

大小:538.50 KB

頁數(shù):50頁

時間:2018-10-20

第5章命令式程序語義_第1頁
第5章命令式程序語義_第2頁
第5章命令式程序語義_第3頁
第5章命令式程序語義_第4頁
第5章命令式程序語義_第5頁
資源描述:

《第5章命令式程序語義》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫

1、第5章命令式程序的語義函數(shù)式程序不含賦值或其它形式的改變變量值的操作命令式程序賦值語句是典型的構造本章圍繞一個叫做Kernel的簡單的命令式語言來討論語義5.1引言Kernel語言的結構由下面的文法概括P::=x:=M

2、P;P

3、ifBthenPelseP

4、whileBdoPodx和M都有適當?shù)念愋蛌alB的類型是bool沒有顯式的輸入、輸出,也沒有局部變量聲明例求對數(shù)x:=1;y:=0;whilex

5、CPO)來表示的指稱語義把Kernel程序翻譯成類型化?演算的表達式利用類型化?演算的指稱語義基于Floyd-Hoare邏輯的公理語義5.2Kernel語言5.2.1存儲單元Kernel的變量可賦值與函數(shù)式語言let子句引入的變量有很大區(qū)別可賦值變量指稱存儲單元變量的左值和右值左值是變量的存儲單元的地址右值是該存儲單元存放的內容為方便討論,修改語言顯式區(qū)分左值和右值,例x和contx5.2Kernel語言例1求對數(shù)x:=1;y:=0;whilecontx

6、=0;r:=m;whilecontr?ndoq:=contq+1;r:=contr–n;od5.2Kernel語言5.2.2表達式的解釋在文法中,M和B分別代表val和bool表達式P::=x:=M

7、P;P

8、ifBthenPelseP

9、whileBdoPod不深入表達式的內部細節(jié)為方便起見,把val看作nat允許普通的數(shù)值和布爾運算5.2Kernel語言用4類別代數(shù)A來建立Kernel的抽象機器模型作為介紹操作語義和指稱語義的共同基礎便于比較操作語義和指稱語義本小節(jié)先介紹相應代數(shù)規(guī)范的三個類別基調?包含3類別val、bool和loc僅關心loc類別有

10、一個取存儲單元內容的函數(shù)符號cont:loc?val環(huán)境?把變量從?loc??val??bool映射到A的元素?loc:程序中的變量;?val和?bool:程序中的常量Abool的解釋是布爾值集合{true,false}5.2Kernel語言5.2.3程序狀態(tài)操作語義和指稱語義都涉及“狀態(tài)”數(shù)據結構名字存儲單元狀態(tài)值環(huán)境從名字到值的兩步映射5.2Kernel語言基調?的第4個類別stateinit:stateupdate:state?loc?val?statelookup:state?loc?val代數(shù)公理lookup(updatesl?v)l=(l

11、ookup)ifEq?ll?thenvelse(lookupsl)updatesl(lookupsl)=s(update)1update(updateslu)l?v=ifEq?ll?(update)2thenupdateslvelseupdate(updatesl?v)lu5.2Kernel語言四類別代數(shù)AAloc是任意的可數(shù)集合,Astate是從Aloc到Aval的所有函數(shù)的集合initA是任意的常函數(shù)lookupA(s,l)=s(l)updateA(s,l,v)是函數(shù)s?,除了s?(l)=v以外,s?等同于s為了記號上的方便,下面用init,lo

12、okup和update代替initA,lookupA和updateA5.2Kernel語言兩個問題為什么不在前三個類別的基礎上引入作為狀態(tài)的函數(shù)state=loc?val,而要引入第4個類別state若那樣,則lookup和update成了高階的函數(shù)符號為什么不用一個函數(shù)直接從變量映射到值,而要分離出環(huán)境和狀態(tài)直觀上講,環(huán)境和狀態(tài)在概念上有區(qū)別,它們分別對應到實際語言實現(xiàn)的不同機制從技術角度說,Kernel沒有提供聲明常量的值的方式,只能將程序中常量的取值交給環(huán)境來確定5.3操作語義5.3.1表達式的求值操作語義分成兩部分表達式的計算語句的執(zhí)行表達式

13、的語義表達式、環(huán)境、狀態(tài)和表達式的語義值之間的一個四元關系:?M,s???evalv環(huán)境下標在下面將省略?eval由一個證明系統(tǒng)來給出5.3操作語義?eval公理?x,s??eval?(x)?c,s??evalcA?eval推理規(guī)則fA(v1,…,vk)=vlookupA(s,l)=v?M1,s??evalv1…?Mk,s??evalvk?fM1…Mk,s??evalv?x,s??evall?contx,s??evalv5.3操作語義5.3.2命令的執(zhí)行命令的執(zhí)行可以用關系?exec來刻畫updateA(s,?(x),v)=s??M,s??evalv

14、?x:=M,s??execs??P1,s??execs??P2,s???execs???P1;P2,s??e

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。