- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2.4歸約和符號解釋器二元組前兩條規則不再需要 M是範式M?leftM??M,N??left?M?,N?N?leftN??M,N??left?M,N??M?lazyM?ProjiM?lazyProjiM?2.4歸約和符號解釋器函數下麵兩條規則不再需要 M是範式M?lazyM?MN?lazyM?NN?leftN?MN?leftMN?M?leftM??x:?.M?left?x:?.M?2.3程式和語義該公理語義強到足以確定程式的含義該系統證明不了加法是可交換的,也證明不了遞歸函數間的許多有意義的等價對於這些性質需要用歸納法來證明PCF語言對類型並不需要證明系統,因為兩個類型相同當且僅當它們在語法上相同2.3程式和語義2.3.3指稱語義概述PCF的指稱語義,以便三種語義形式可以比較為每個類型選擇一個值集來給出項的指稱nat的語義論域是自然數值集N?{?nat}letrecf(x:nat):nat=f(x+1)inf(0)計算不終止bool的語義論域是布爾值集B?{?nat}nat和bool類型的任何項指派相應語義論域上的一個值,也稱為它們的語義解釋2.3程式和語義積類型???的數學值是有序對集合函數類型???的數學值是從?到?的函數集合如果?=?,那麼函數有不動點約定:對任何n?N,用?n?表示其數碼例:?x:nat.M 如果對任何自然數n?N,都有 [?n?/x]M???f(n)?那麼?x:nat.M的指稱就是數值函數f:N?N2.3程式和語義環境?是指從變數到值的映射若x:?,?(x)是類型?的值集上的元素通過歸納可以定義運算式M在環境?中的含義〖M〗?〖x〗?是變數x在環境?中的值函數應用〖MN〗?的含義是通過把M指稱的函數〖M〗?應用到N指稱的變元〖N〗?來獲得其他情況可類似地定義2.3程式和語義指稱語義是可合成的,即任何運算式的含義由它子運算式的含義決定如果〖B〗?是true, 那麼〖ifBthenMelseN〗?=〖M〗?如果〖B〗?是false, 那麼〖ifBthenMelseN〗?=〖N〗?否則,〖ifBthenMelseN〗?=?如果B?,M?和N?同B,M和N分別有同樣的指稱,那麼〖ifB?thenM?elseN?〗?=〖ifBthenMelseN〗?2.3程式和語義2.3.4操作語義eval(M)=N當且僅當經若干步(含零步)歸約,M可以歸約到範式N類型nat和bool(add) 0+0?0,0+1?1,…, 3+5?8,…(Eq?) Eq?nn?true,Eq?nm?false n和m是不同的數碼(cond) iftruethenMelseN?M iffalsethenMelseN?N2.3程式和語義二元組(proj) Proj1?M,N??MProj2?M,N??N重新命名約束變數(?) ?x:?.M=?y:?.?y?x?M y在M中不是自由的函數(?) (?x:?.M)N??N/x?M遞歸(fix) fix???f:???.f(fix?f)2.3程式和語義這個操作語義並沒有指定計算步驟,因而顯得抽象一些保留了重新命名約束變數的等式公理的形式對於二元組的滿射配對公理(sp)和函數的外延公理(?),沒有相應的歸約規則2.3程式和語義2.3.5由各種形式的語義定義的等價關係各種等價關係公理等價:M=N是可證明的 用M=axN表示指稱等價:M和N對自由變數的任何取值都有相同的指稱 用M=denN表示操作等價:eval(M)?eval(N)(程式M和N求值的結果一樣,或者求值結果都沒有定義) 用M=opN表示2.3程式和語義操作等價M=opN可以從程式推廣到一般項上下文C[]是一個項,但其中有一個洞例:C0[]=def?x:nat.x+[]例:C0[x]是?x:nat.x+x項M和N操作等價: 如果對任意使得C
文档评论(0)