×

关系形状抽象域。 (英语) Zbl 1522.68156号

摘要:静态分析旨在推断程序的语义属性。我们区分了两类重要的静态分析:状态分析和关系分析。状态分析旨在计算程序可达状态的过近似,而关系分析则旨在计算程序输入输出状态的函数属性。关系分析的几个优点是能够分析不完整的程序,例如库或类,还可以将输入-输出关系用作过程的可组合摘要,从而使分析模块化。在数值程序的情况下,已经提出了几种利用关系数值抽象域来描述关系的分析。另一方面,为输入输出记忆状态的关系设计抽象并考虑形状是一项挑战。在本文中,我们受分离逻辑的启发,提出了一组新的逻辑连接词来描述这种关系。此逻辑可以表示某些内存区域未更改、新分配或释放,或者只修改了部分内存。使用这些连接词,我们构建了一个抽象域,并设计了一个静态分析,该分析过度近似包含归纳结构的记忆状态之间的关系。我们实现了这种分析,并报告了对操作列表和树的程序的基本库的分析。

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70号 计算机科学中的逻辑
68问题55 计算理论中的语义学
PDF格式BibTeX公司 XML格式引用
全文: 内政部 哈尔

参考文献:

[1] Amit D、Rinetzky N、Reps T、Sagiv M、Yahav E(2007)《验证线性化能力的抽象比较》。参加:计算机辅助验证会议(CAV)。柏林施普林格,第477-490页·Zbl 1135.68462号
[2] Baudin P、Filliátre J-C、MarchéC、Monate B、Moy Y、Prevosto V(2008)ACSL:ANSI C规范语言
[3] Bengtson J、Jensen JB、Birkedal L(2012)Charge!coq中高阶分离逻辑的框架。参加:交互式定理证明国际会议(ITP)。柏林施普林格,第315-331页·Zbl 1360.68741号
[4] Blanchard A、Kosmatov N、Loulergue F(2018)《清单幽灵:frama-c中验证的contiki关键模块》。in:NASA正式方法研讨会(NFM)。柏林施普林格
[5] Bouajjani A、Drégoi C、Enea C、Rezine A、Sighireanu M(2010)《程序操纵无界数据列表的不变量综合》。参加:计算机辅助验证会议(CAV)。施普林格,第72-88页
[6] Bouajjani A、Dragoi C、Enea C、Sighireanu M(2011年)《利用列表和数据对项目进行跨过程分析》。参加:编程语言设计与实现会议(PLDI)。ACM,第578-589页
[7] Calcagno C、Distefano D、O’Hearn P、Yang H(2007)足迹分析:发现前提条件的形状分析。In:静态分析研讨会(SAS)。施普林格,柏林,第402-418页
[8] Calcagno C、Distefano D、O’Hearn P、Yang H(2009)《利用双折法进行成分形状分析》。参加:编程语言原理研讨会(POPL)。ACM,第289-300页·Zbl 1315.68085号
[9] Castelnuovo G,Naik M,Rinetzky N,Sagiv M,Yang H(2015)《格中的模块性:自顶向下和自下而上分析之间对应关系的案例研究》。In:静态分析研讨会(SAS)。柏林施普林格,第252-274页
[10] Chang B-YE,Rival X(2008),关系归纳形状分析。在:程序设计语言原理研讨会(POPL)。ACM,第247-260页·Zbl 1295.68081号
[11] Chang B-YE,Rival X(2013)形状数字分析仪的模块化结构。收录:理论计算机科学电子论文集。OPA,第161-185页·Zbl 1464.68072号
[12] Charguéraud A,Pottier F(2017)分离逻辑的临时只读权限。摘自:欧洲规划研讨会(ESOP)。施普林格,第260-286页·Zbl 1485.68056号
[13] Chatterjee R,Ryder BG,Landi WA(1999)相关上下文推断。参加:编程语言原理研讨会(POPL)。ACM,第133-146页
[14] Costea A、Sharma A、David C(2014),希皮姆:验证粒度不变性保证。In:部分评估和程序操作(PEPM)研讨会,美国纽约州纽约市,ACM,第189-193页
[15] Cousot P,Halbwachs N(1978)程序变量之间线性约束的自动发现。参加:编程语言原理研讨会(POPL)。ACM,第84-97页
[16] Cousot P,Cousot R(1976)程序动态特性的静态测定。摘自:第二届国际编程研讨会论文集,法国巴黎。杜诺德·Zbl 0393.68080号
[17] Cousot P,Cousot R(1977)抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型。参加:编程语言原理研讨会(POPL)·Zbl 1149.68389号
[18] Cousot P,Cousot R(1979)程序分析框架的系统设计。参加:编程语言原理研讨会(POPL)。ACM公司·兹比尔1323.68356
[19] Cousot P,Cousot R(2002)模块化静态程序分析。In:编译器构造会议(cc)。柏林施普林格,第159-179页·Zbl 1051.68624号
[20] Cox A,Chang B-YE,Rival X(2015)动态语言开放程序的非同步多状态抽象。摘自:欧洲规划研讨会(esoP)。柏林施普林格,第483-509页
[21] David C,Chin W-N(2011)《更简明和精确验证的不变规范》。在:面向对象编程系统语言和应用程序会议(OOPSLA),美国纽约州纽约市,ACM,第359-374页
[22] Dillig I,Dillig T,Aiken A,Sagiv M(2011)堆操作程序的精确而紧凑的模块化过程摘要。参加:编程语言设计与实现会议(PLDI)。ACM,第567-577页
[23] Distefano D,Katoen J-P,Rensik A(2004)谁在何时指向谁?In:软件技术和理论基础(FSTTCS)。柏林施普林格,第250-262页·Zbl 1117.68427号
[24] Distefano D,Katoen J-P,Rensik A(2005)并发指针程序中的安全性和活性。In:组件和对象的形式化方法(FMCO)。柏林施普林格,第280-312页·Zbl 1196.68045号
[25] Distefano D,O’Hearn P,Yang H(2006)基于分离逻辑的局部形状分析。In:系统构建和分析工具和算法会议(TACAS)。柏林施普林格,第287-302页·Zbl 1180.68112号
[26] Dunkels A、Gronvall B、Voigt T(2004)Contiki-一种适用于小型网络传感器的轻量级灵活操作系统。2004年,第29届IEEE本地计算机网络国际年会。IEEE,第455-462页
[27] Fu M,Li Y,Feng X,Shao Z,Zhang Y(2010)使用历史程序逻辑推理乐观并发。In:并发理论国际会议(ICC)。柏林施普林格,第388-402页·Zbl 1287.03071号
[28] Gulavani BS、Chakraborty S、Ramalingam G、Nori AV(2009)自下而上的形状分析。In:静态分析研讨会(SAS)。柏林施普林格,第188-204页·Zbl 1248.68145号
[29] Jacobs B,Piessens F(2008),真正的程序验证器。比利时鲁汶大学计算机科学系技术报告
[30] Jeannet,伯特兰;阿列克谢·Loginov;代表,托马斯;Sagiv,Mooly,程序间形状分析的关系方法,ACM Trans Program Lang Syst(TOPLAS),32,2,5(2010)·Zbl 1104.68416号 ·数字对象标识代码:10.1145/1667048.1667050
[31] Kaki G,Jagannathan S(2014)高阶形状分析的关系框架。In:函数编程国际会议(ICFP)。ACM,第311-324页·兹比尔1345.68062
[32] 基什内尔,佛罗伦萨;尼古拉·科马托夫;维吉尔·普雷沃斯托;Signoles,Julien;Yakobowski,Boris,Frama-c:软件分析视角,形式方面计算,27,3573-609(2015)·doi:10.1007/s00165-014-0326-7
[33] Le QL,Gherghina C,Qin S,Chin W-N(2014),通过二阶双外推进行形状分析。参加:计算机辅助验证会议(CAV)。柏林施普林格,第52-68页
[34] Leavens GT,Baker AL,Ruby C(1998)Jml:一种java建模语言。In:java研讨会的正式基础(OOPSLA’98),第404-420页
[35] Li H,Berenger F,Chang B-YE,Rival X(2017)析取抽象状态的语义定向聚类。参加:编程语言原理研讨会(POPL)。ACM,第52卷,第32-45页·Zbl 1380.68129号
[36] Nguyen HH,David C,Qin S,Chin W-N(2007)通过分离逻辑自动验证形状和尺寸属性。参加:验证、模型检查和抽象解释会议(VMCAI)。柏林施普林格,第251-266页·Zbl 1132.68477号
[37] O'Hearn,Peter W.,《资源、并发和局部推理》,《Theor Compute Sci》,第375页,第1-3页,第271-307页(2007年)·Zbl 1111.68023号 ·doi:10.1016/j.tcs.2006.12.035
[38] Popeea C,Chin W-N(2006)推断析取后置条件。参加:计算机科学进展会议:安全软件及相关问题。柏林施普林格,第331-345页
[39] Reynolds J(2002)《分离逻辑:共享可变数据结构的逻辑》。在:计算机科学中的逻辑专题讨论会(LICS)。IEEE,第55-74页
[40] 穆利,萨吉夫;代表,托马斯;Wilhelm,Reinhard,通过三值逻辑进行参数形状分析,ACM Trans Program Lang Syst(TOPLAS),24,3,217-298(2002)·doi:10.1145/514188.514190
[41] 塔赫迪里,马纳;Daniel Jackson,《推断规范以检测代码中的错误》,Autom Softw Eng(ASE),14,1,87-121(2007)·数字对象标识代码:10.1007/s10515-006-0005-x
[42] Yahav E,Reps T,Sagiv M,Wilhelm R(2003)验证通过演化逻辑指定的临时堆属性。摘自:欧洲规划研讨会(ESOP)。施普林格,柏林,第204-222页·Zbl 1032.68062号
[43] Zhu H,Petri G,Jagannathan S(2016)自动学习形状规范。参加:编程语言设计与实现会议(PLDI)。ACM,第491-507页
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。