公理语义-Floyd选编.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计形式语义学 南京理工大学 计算机系 张琨 二○○四年八月二日 南京理工大学 计算机系 2006.11.21 主讲:张琨 2 公理语义 试图通过在程序逻辑的范围内给出证明规则来确定程序设计构造的含义。该方法的代表人物是R.W.Floyd和C.A.R.Hoare。 从一开始,公理语义强调的是正确性证明。 程序的正确性证明 2.1 引言 2.2 FCL/2结构的表示 2.3 其他控制结构的表示 2.4 程序的形式描述与证明 2.5 程序正确性证明 2.6 计算WP:语言的语义 2.1 引言 SMALL语言的控制结构能够表示其他语言,首先引入最小语言(SMALL)。 定义:最小语言SMALL定义如下: 1.赋值语句右部表达式至多只有一个操作符,没有括号出现; 2.控制语句有: GOTO 位置; IF 简单布尔表达式 THEN GOTO 位置; 其中,简单布尔表达式是单个布尔变量或两个算术变量的单一关系。位置是标号或@变量 3.语句可以带标号,标号L可以看作是标号为L的语句在程序中的位置的名字(在实际的计算机中,#L是存储该语句的存储单元)。语句 x := #L; 把标号为L的语句的存储单元名存储在变量x中。语句 GOTO @x; 把控制转移到其单元名存储在变量x中的那个语句。 2.2 FCL/2结构的表示 1.赋值语句的表示 x := E1/E2 定义该赋值语句的表示为: REP(x := E1/E2) = REP(t1 := E1);REP(t2 := E2);x := t1/t2 定义 记号REP(S)代表语句、短语或值S的表示。 2.2 FCL/2结构的表示 2.顺序控制的表示 顺序语句序列 S1;S2;…;Sk 定义该顺序语句的表示为: REP(S1;S2;…;Sk) = REP(S1);REP(S2);…;REP(Sk) 定义 记号REP(S)代表语句、短语或值S的表示。 2.2 FCL/2结构的表示 3.IF-THEN-ELSE的表示 定义该语句的表示为: REP(IF B THEN S1 ELSE S2) = REP(t := B);IF t THEN GOTO L1;REP(S2);GOTO L2; L1:REP(S1); L2: 定义 记号REP(S)代表语句、短语或值S的表示。 2.2 FCL/2结构的表示 4.WHILE语句的表示 定义该语句的表示为: REP(WHILE B DO S) = L1:REP(e := NOT B); IF e THEN GOTO L2; REP(S); GOTO L1; L2: 定义 记号REP(S)代表语句、短语或值S的表示。 2.2 FCL/2结构的表示 举例 IF xy THEN w := 5 ELSE w := -3; 定义该语句的表示 REP(IF xy THEN w := 5 ELSE w := -3)= t := xy; IF t THEN GOTO L1; w := -3; GOTO L2; L1: w := 5; L2: 定义 记号REP(S)代表语句、短语或值S的表示。 2.2 FCL/2结构的表示 讨论 i := 0; s := 0; WHILE i100 DO s := s + i; 定义该语句的表示 定义 记号REP(S)代表语句、短语或值S的表示。 i := 0; s := 0; WHILE i100 DO s := s + i; 2.3 其他控制结构的表示 5.REPEAT语句的表示 REPEAT S UNTIL B 等价于 S; WHILE ~B DO S 定义该语句的表示为: REP(REPEAT S UNTIL B) = REP(S; WHILE ~B DO S) = L1:REP(S); REP(t := NOT B); IF t THEN GOTO L; 定义 记号REP(S)代表语句、短语或值S的表示。 2.3 其他控制结构的表示 6.NumberedCase语句的表示 NumberedCase E OF S1; S2;…;Sk; 定义该语句的表示为: REP(NumberedCase E OF S1; S2;…;Sk;OTHERWISE Sw END) = 定义 记号REP(S)代表语句、短语或值S的表示。 2.3 其他控制结构的表示 6.NumberedCase语句的表示 NumberedCase E OF S1; S2;

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档