Shape analysis through predicate abstraction and model check(6)

时间:2025-04-10

Abstract. We propose a new framework, based on predicate abstraction and model checking, for shape analysis of programs. Shape analysis is used to statically collect information — such as possible reachability and sharing — about program stores. Rather t

3.1MemoryModel

HeapandstackcontentsaremodeledbyanunboundedarrayM,indexedbytheintegers,togetherwitha nitesubsetoftheintegers,calledalloc,whichrecordstheallocatedaddresses.Astructure eldname,suchasn,isrepresentedwithafunction,calledn ,whichmapstheaddressofthestructuretotheaddresswhere eldnis‘stored’–weassume eldnamesaregloballydistinct.AnexpressionehastwoattributesrelativetoM:itsaddress,denotedbyaddrM(e),anditsvalue,denotedbyvalM(e).Therulesforcalculatingtheseattributes,andtheinterpretationsofbasicprogramstatements,aregiveninFigure4.Intheserules,attributesarewrittenasapair(address,value),⊥representsanunde nedresult,andwehavesimpli edmattersbyhavingmallocallocateasinglememorylocation.

Programvariablex:(α(x),M[α(x)]),whereαmapsprogramvariablestoaddressesStructureaccesse.n:( n(addrM(e)),M[ n(addrM(e))])

Addressexpression&e:(⊥,addrM(e))

Dereference e:(valM(e),M[valM(e)]),ifvalM(e)∈alloc,elseerror

Numericconstantc:(⊥,c)

Arithmeticoperationop(e1,...,en):(⊥,op(valM(e1),...,valM(en)))

Pointeradditione+i:(⊥,valM(e)+i)

Guardg:valM(g)

Ordinaryassignmente1:=e2:M[addrM(e1)]:=valM(e2)

Memoryallocatione:=malloc:M[addrM(e)]:=a;alloc:=alloc∪{a},

forsomea∈alloc

Memoryde-allocationfree(e):alloc:=alloc\{valM(e)}

Fig.4.Thememorymodel

ThewpofapredicateprelativetoastatementsiscomputedbytranslatingbothpandsintermsofM,calculatingwpinthestandardwayforarrayupdates3

[15],andtranslatingtheresultbacktothesyntaxofprogramexpressions(seee.g.

[5]).Forexample,considerthepredicatep≡(x=0),foraprogramvariablex,andstatements: u:=10.TheassignmentisinterpretedasamemoryupdateresultinginM ≡M[valM(u)←10],andwp(s,p)isgivenby(valM(x )=0).DistributingM intovalresultsin(if(valM(u)=α(x))then10elsevalM(x))=0,whichsimpli esto(valM(u)=α(x))∧(valM(x)=0).Translatingbacktoprogramsyntaxgives(u=&x)∧(x=0)astheweakestprecondition.ThisprocessoftranslatingbackandforthfromMthuscorrectlytakesintoaccountaliasinge ects.Itistedioustocarryoutsuchcalculationsbyhand,buttheyareeasilyautomated,asdescribedinthefollowingsection.

3wp(M[a]:=v,p(M))isgivenbyp(M ),whereM [i]=M[i]fori=a,andM [a]=v,denotedbyM =M[a←v].DistributingM intopresultsinanexpressionintermsofM.

…… 此处隐藏:380字,全部文档内容请下载后查看。喜欢就下载吧 ……
Shape analysis through predicate abstraction and model check(6).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219