PM-06-Chap03-程序规范及其正确性证明概述.pptVIP

PM-06-Chap03-程序规范及其正确性证明概述.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*内容-Whereweare?程序规范、规范的描述断言与规范及{P}S{Q}程序正确性的概念程序正确性证明的过程2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范1.断言断言就是关于事物性质的陈述。这个陈述可真可假。如“三是个质数”用断言作为程序的注解或作为正确性命题的一部分时,常用大括号括起来。例1:写一个计算商和余数的程序程序规范:“设被除数x1是个非负整数,除数x2是个正整数,计算x1除以x2的商y1和余数y2”又描述为:“初始条件:{x1=0ANDx20},计算满足{x1=x2*y1+y2and0=y2x2}的整数y1和y2”2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范(续)一般地,一个程序规范可表示为由两个谓词构成的二元组(P,Q)。其中,P描述了所欲求解的问题必须满足的初始条件,它限定了输入参数的性质,称为初始断言或前置断言;Q描述了问题的最终解必须满足的性质,称为结果断言或后置断言。2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范(续)程序断言是对程序的性质的陈述。最重要的一个程序断言为:{P}S{Q}。其中,(P,Q)是程序S的程序规范,S是一个程序(或语句)断言{P}S{Q}称为S关于(P,Q)的正确性断言。它的意义:“若S开始执行时P为真,则S的执行必终止且终止时Q为真”2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范(续)例:求商余程序{x1=0andx20}Y2:=x1;y1:=0;{0=y2and0x2andx1=x2*y1+y2}Whiley2=x2dobegin{0=y2and0x2=y2andx1=x2*y1+y2}y2:=y2-x2;y1:=y1+1;{0=y2and0x2andx1=x2*y1+y2}end;{x1=x2*y1+y2and0=y2x2}2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范(续)问题:如何构造断言使他们能准确地反映不同位置上程序的性质?有了断言,如何证明他们的正确性?能否有准则,可以从规范(P,Q)构造出程序S,使{P}S{Q}为真。2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范(续)2.程序断言的进一步说明说明:在给出规范描述(P,Q)时,必须指明哪些量是可变的,哪些是不可变的。如果是可变的,必要时对前者还需指明其变化方式。输入参数:在程序执行前从外部获得值,但在程序执行中,其值始终保持不变的变量。一般用以x开头的标识符表示。输出变量:其值随程序的执行而不断变化的变量。一般以y开头的变量,或不以x和u开头的变量标识。辅助变量:为了描述程序变量取值变化方式而因入的变量。这些变量不得在程序中出现,用以u开头的变量表示。2005年3月3日星期四鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved*3.2断言与规范(续)例1.编写一个程序Swap(y1,y2),功能是把y1,y2两变量的值互换。其规范:({y1=u1∧y2=u2},{y1=u2∧y2=u1})鲍玉斌东大信息学院计算机软件所程序设计方法学AllRightsReserved第3章程序规范及其正确性证明概述*⑴Z语言对大型系统的模块化能力不足。因为在Z语言中,目标软件系统的结构和特征都用模式来描述,随着系统的增大,模式也会越来越多,而Z语言中没有更加有效的机制来管理这些模式,最终导致Z规格说明难以阅读。⑵难以识别影响某一状态模式的所有操作模式。因为在Z语言中,一个操作模式可能涉及多个状态模式,为了确定能影响特定状态模式的所有操作模式,就需要逐个检查全部操作模式的声明部分,这对于大型软件

文档评论(0)

187****7860 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档