正在加载图片...
张志天等:一个程序验证器的设计和实现 1045 随着国家、社会和日常生活对软件系统的依赖 在下面的三元式中: 程度日益增长,复杂软件系统的正确、安全(包括可 {Q}*p=5{p==qΛ*p+*q==10}, 靠安全性(safety)和保密安全性(security))和可靠 访问路径¥p和*g互为别名.若按Hoare逻辑的赋 等对安全攸关的基础设施和应用是至关重要的,安 值公理,最弱前条件Q是p==q∧*q==5,而正确 全攸关软件的高可信成了保障国家安全、保持经济 的最弱前条件是p==q. 可持续发展和维护社会稳定的必要条件。 对于访问路径的别名,一种针对性的解决办法 形式验证是提高软件可信程度的重要方法,粗 是引入存储模型,把存储器M看成地址到被存储值 略地说,软件的形式验证有两种途径.第1种途径是 的映射,并且有下面的存储器公理,其中E和E 模型检测],它通过遍历系统所有状态空间,能够对 是地址表达式,E2是值表达式: 有穷状态系统进行自动验证,并自动构造不满足验 select(update(M,E1,E2),Es)=E2,if E== 证性质的反例.这种方法在工业界比较流行,其优点 E3; 是需要最小的用户交互,并可用于大规模复杂系统, select(update (M,E1,E2),Es)=select (M, 近年来广泛用于清扫现有代码的错误上.第2种途 Es),ifE1!=E 径是逻辑推理,它采用程序逻辑,比较有影响的是 然后,将Hoare逻辑的赋值公理修改为 Hoare逻辑),对程序的性质进行严格地推理,并且 (Q[update(u,E1,E2)/u]*E1=E2 (Q), 在推理过程中通常需要使用像Isabellets]或Cog) 其中,牡是存储器当前状态.利用该赋值公理和存储 这样的定理证明器.在这种途径中,大部分研究围绕 器公理,对先前的那个例子进行演算,可以得到最弱 采用某种演算来产生验证条件,然后用某个定理证 前条件p==q.这种办法的缺点是需要引入语义模 明器来证明验证条件,如Ynot),Spec#[)和ESC 型 Java[们.有些研究依靠符号计算及其过程中的定理 另一种解决办法是采用分离逻辑门.分离逻辑 证明来避免验证条件生成步骤,如Smalllfoots]和 通过把动态分配的各堆块的断言分离地表示,使得 jStar).还有的研究采用经严格证明的变换,从抽象 别名仅可能出现在同一个堆块的断言中.再通过对 规范逐步求精得到具体程序,如Perfect Developer. 赋值语句的推理规则的特别设计,使得必须先消除 虽然这些工具已在实验室研发出来,但是尚无可供 堆断言中出现的别名,然后才可以对修改该堆块单 工业界使用的产品问世.究其原因,根源在于自动定 元的赋值语句进行推理.使用分离逻辑的一个问题 理证明方面的困难.因为不管是访问路径的别名判 是,通常的自动定理证明器都不能证明带分离合取 断、循环不变式的推断、断言语言的表达能力和领域 连接词(*,separating conjunction)的验证条件,必 专用逻辑的设计等,最终都受到自动定理证明的能 须为分离逻辑设计专用的自动定理证明工具.而使 力的影响. 用这种自动定理器,规范的表达性受限于分离逻辑 在研究自动定理证明技术的同时,也应该考虑 的一个可判定片段(fragment)a 怎样降低对自动定理证明器的能力的要求.例如,设 在对操作易变数据结构的程序进行验证时,在 计新的编程语言机制来提高合法程序的门槛,以排 各程序点形状图的支持下,本文方法仍然基于普通 除部分有逻辑错误的程序.还有采用其他程序分析 的Hoare逻辑,既不需要从语义角度对它扩展,也 方法来收集程序信息,用这些信息来支持程序验证· 不需要引入新的逻辑连接词,既方便了程序员也减 这些都有可能减轻程序验证的负担,本文介绍在通 轻了自动定理证明器的负担. 过程序分析建立起各程序点形状图(shape graph) 其次,本文提出一种在不使用自定义谓词的情 的基础上,如何利用形状图提供的信息来支持程序 况下,易变数据结构上数据性质的描述和验证方法. 验证的方法,介绍基于该方法开发的一个程序验证 主要是指断言中允许使用带上角标的访问路径(即 器原型。 p(->ext)代表p->next->…->next,其中 本文的主要贡献是提出一种利用形状图信息来 ->next重复i次),以便用带全称量词的断言描述 消除访问路径别名,使得指针程序仍然可以用Hoare 链表的有序性等性质.在产生验证条件时,通过引入 逻辑来进行验证的方法,并证明了该方法的可靠性. 辅助函数来把带上角标的访问路径变换成可满足性 Hoare逻辑的一个重要限制是程序中不同的名 模理论(satisfiability modulo theories)求解器Z3ls町 字代表不同的程序对象,即不允许出现别名.例如, 能接受的形式」GH)*&IJKLMNOP?@QRSTU VWLXYZ$[\?@QRS]^&AB!_`a bABc!;3598M"KdeABc!;9<01G8M""Kab fPABghS/ijkKlmnohpqSHA Bgh?@Srastudv)*AB&dwxy awz'(K{|IJ}~Sq€@H ‚Dƒn„r?@asVWSpq…†H‡ ˆ‰Š$?@S‚Dƒ‹ŒŽH$Žn ‘’'$($•™QRš‹›œž$Ÿ P ‹¡›œQR¢£+¤Dƒ$¥+¤¦§¨©ªD ƒc«S¬­H®…†¯°±²³´µ£$¶·¸ n¹qº»Sm¼½¾$¥am¿9À‘[\QR$ ÁÂÃÄÅm¿ÆÇȋÉÊSËÌÍH'Ž nÎÏÐÑ$•ÒmVÓÎÏ$³´‹ÔÕSn V/319ÎÏ''($PVÓSc«¢£Ö׉ÐÑ$¥Ø ¯ÐÑV6M¹qÙmÚ!;3Q9449'((Û */X'B( ®ÜS~уÝÞH¯®Ž6$9ßà$%áâ Òmãä"ÃåNDƒ€@$,æmãç~у ÝÞÃÝDƒ€@$è L2/8'A($"79<#'D(K Y"*! .3@3'+( H‹é$%Tbêë!"ì¶V6S~Ñ ƒÝÃíîDƒ€@Ntïð$è "634445//8'E(K P"831')( Hñ‹S$%ÒmxÖ׃ÝSòó$ôõö À÷øïùúûüýþVÓ$è-9159<8?9@94/791'$%( H ÿ,®é°ý!¯CDE$'"Ã$#n$%a& °±²ÙmSå'()H%¶*+$,-¯¿+¤~ у݅.S/0H+1¨2n3(4S567 8&9:¨ò‚SÐ8&8;<;S=>Ÿ?K@A BmÎÏSj!f$ºCDEü+¤~уÝSŸ ?SÔÕH ¯$%+¤~уÝ78SFG$HlIJK LÜMNP+¤~уÝÞSŸ?SqùH­è$j !OSPV<;#QÄr;†VÓSRS$TU Vßà‹ÎÏËÌSVÓHñ‹Òm¶WVÓàX …†ÃYZVÓs[$m®és[Ã\wVÓDƒH ®éD‹aŸ]^VÓDƒS_`Habcd¯ VÓàXefghVÓ¸›i!;=379J137=" S/iÍ$èjkm›i„&Ss[Ã\wVÓ DƒS…†$cd/¿I…†l'SmçVÓDƒ Þ*’H abSnqopn„"mkm›is[à qV3(456$ÙûrsVÓt,aTm V/319 ÎÏâ£DƒS…†$¥ƒÝuI…†SabcH V/319ÎÏSmçpquQnVÓ6¨FS6 vÉ=¨FSVÓPö$w¨xy"È56H­è$ ¯z.S{|‚6# )@*") AA)) A AB#")C"BA A$%*$ 3(4") K"B¾156D}~ V/319ÎÏS €Ñ$º‚ƒ€@@ n)ZZB#"BZZA$„]^ Sº‚ƒ€@n)ZZBD P¿3(4S56$msPcS…†‡† nˆ‰Š‹‘’$ŒŠ‹Þ E t‰ŽüŠ‹€ S‘$¥Ø‹z.SŠ‹ÞÑ$¶6 F$ K F( n‰Ž=>‚$F' n€=>‚# 7,%,"+!*)10+,!E$F$$F'"$F("ZF'$G5F$ZZ F(% 7,%,"+!*)10+,!E$F$$F' "$F( "Z7,%,"+!E$ F("$G5F$+ ZF(D ,æ$’ V/319ÎÏS€Ñ1 )@'*)10+,!!$F$$F'""!(*"F$ZF')@*$ ¶6$!nŠ‹Þ•ƒ›œDkmI€ÑKŠ‹ ށÑ$PƒSç­¢£ä"$aTûüº‚ ƒ€@)ZZBD®‡†S™¸n¹qˆ‰<š‘ ’D ›m…†‡†nÒmàœÎÏ'$$( HàœÎÏ Œ¤œàShžŸS8;àœ‰= $Ùû 56¡aŸ"ȯFm瞟S8;6H¢P €<£SÐÑÀ¤S¥5j!$Ùû¦qV ž8;6"ÈS56$,æ§aTPIžŸ¨ |S€<£¢£ÐÑHÙmàœÎÏSmç(© n$MS+¤~уÝÞD¨ŸƒÝªàœ;« ¬­®!"$;973138G2J</2P02<8G/2"SDƒ€@$ ¦1àœÎÏj!BmS+¤~уݰýH„Ù m®+¤~ÑÞ$À÷S=>cEu¿àœÎÏ Smça7~¯°!513J6928"'$'( H ¯P±²³ò´µ¶¦SVÓ¢£DƒG$¯ hVÓ¸›iS\wz$ab…†t,/¿· S V/319ÎÏ$¸¨¹qô<š¹WP•º($H ¨¹qˆ‰OSÎϬ­®$¸…»uVÓ¼H] ^u+¤~уÝÞS_`H ¶½$ab„"m¯¨Ùm+~š¾®S¿ Àz$³ò´µ¶¦Í´µc«SÁÂKDƒ…†D nqnr8;6xyÙmªÍ¹ÃS3(4!w )!C$/,G+". É=)C$/,G+C$,C$/,G+$¶6 C$/,G+p[.½"$T»mªBÄÅ®S8;Á Æ=S‹Ócfc«D¯åNDƒ€@G$ˆ‰ ÇÈɴ̪͹ÃS3(4òóta©ªc ‘ÑÊ!;38G;5G3QG4G8M6/>04/8=9/1G9;"ù…ÞI('$(( Ÿ­ES‚H ËÌÍf#mçVÓDƒÞSj!KCÈ $%BA
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有