×

用于程序分析的分区内存模型。 (英语) Zbl 1484.68054号

Bouajjani,Ahmed(编辑)等人,《验证、模型检查和抽象解释》。第18届国际会议,2017年VMCAI,2017年1月15日至17日,法国巴黎。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。10145, 539-558 (2017).
概要:可伸缩性是静态分析中的一个关键挑战。对于命令式语言(如C),内存建模方法在可伸缩性方面发挥着重要作用。在本文中,我们探讨了一系列称为分区内存模型的内存模型,这些模型基于点分析的结果来划分内存。我们回顾了Steensgaard的原始和字段敏感点分析以及数据结构分析(DSA),并引入了一种新的基于单元的点分析,它可以更精确地处理堆数据结构和类型不安全的操作,如指针算术和指针投射。我们使用Cascade中的程序验证框架给出了软件验证竞赛基准测试的实验结果。我们表明,使用基于单元的点分析的分区内存模型优于使用其他分析的模型。
关于整个系列,请参见[Zbl 1355.68009号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68第05页 数据结构
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Andersen,L.O.:C编程语言的程序分析和专门化。哥本哈根大学博士论文,1994年5月
[2] Balatsouras,G.,Smaragdakis,Y.:C和C++的结构敏感点分析。In:静态分析研讨会(SAS)(2016)·doi:10.1007/978-3-662-53413-7_5
[3] Barrett,C.、Stump,A.、Tinelli,C.:SMT-LIB标准-版本2.0。摘自:第八届可满足模理论国际研讨会论文集(2010年)
[4] Beyer,D.:与benchexec和目击者的可靠和可复制的竞争结果(2016年SV-COMP报道)。In:系统构建和分析工具和算法(TACAS)(2016)·doi:10.1007/978-3-662-49674-9_55
[5] Böhme,S.,Moskal,M.:堆,数据结构:自动化校准仪的挑战。In:自动扣除会议(2011年)·Zbl 1341.68182号 ·doi:10.1007/978-3-642-22438-6_15
[6] Burstall,R.M.:证明改变数据结构的程序正确性的一些技术。机器。智力。7, 23–50 (1972) ·Zbl 0259.68009号
[7] Clarke,E.,Kroening,D.,Lerda,F.:检查ANSI-C程序的工具。In:系统构建和分析工具和算法(TACAS)(2004)·Zbl 1126.68470号 ·doi:10.1007/978-3-540-24730-2-15
[8] Cohen,E.,Moskal,M.,Tobies,S.,Schulte,W.:C.Electron精确而有效的记忆模型。注释Theor。计算。科学。(ENTCS)254、85–103(2009年)·doi:10.1016/j.entcs.2009.09.061
[9] Condit,J.,Hackett,B.,Lahiri,S.K.,Qadeer,S.:统一低级代码的类型检查和属性检查。In:编程语言原理(POPL)(2009)·Zbl 1315.68086号 ·doi:10.1145/1594834.1480921
[10] Conway,C.L.、Dams,D.、Namjoshi,K.S.、Barrett,C.:指针分析、条件健全性和证明不存在错误。In:静态分析研讨会(SAS)(2008)·Zbl 1149.68348号 ·doi:10.1007/978-3-540-69166-25
[11] Cuoq,P.,Kirchner,F.,Kosmatov,N.,Prevosto,V.,Signoles,J.,Yakobowski,B.:Frama-C软件分析视角。In:软件工程与形式化方法(SEFM)(2012)
[12] Foster,J.S.、Fähndrich,M.、Aiken,A.:流动敏感点——用术语和集合约束进行分析。技术报告CSD-97-964,加州大学伯克利分校(1997)
[13] Gurfinkel,A.,Kahsai,T.,Komuravelli,A.,Navas,J.A.:SeaHorn验证框架。In:计算机辅助验证(CAV)(2015)·数字对象标识代码:10.1007/978-3-319-21690-4-20
[14] Hind,M.:指针分析:我们还没有解决这个问题吗?In:软件工具和工程的程序分析(PASTE)(2001)·数字对象标识代码:10.1145/379605.379665
[15] Lahiri,S.K.,Qadeer,S.:回到未来:使用SMT解算器重新审视精确的程序验证。In:编程语言原理(POPL)(2008)·Zbl 1295.68087号 ·doi:10.145/1328438.1328461
[16] Lahiri,S.K.、Qadeer,S.、Rakamarić,Z.:使用SMT解算器静态精确检测系统代码中的并发错误。In:计算机辅助验证(CAV)(2009)·doi:10.1007/978-3-642-02658-4_38
[17] Lal,A.,Qadeer,S.:使用Corral为静态驱动程序验证器供电。In:软件工程基础(FSE)(2014)·doi:10.1145/2635868.2635894
[18] Lattner,C.,Lenharth,A.,Adve,V.:使上下文敏感的点对堆克隆的分析在现实世界中切实可行。In:编程语言设计与实现(PLDI)(2007)·数字对象标识代码:10.1145/1250734.1250766
[19] Miné,A.:具有并集类型和指针算术的嵌入式C程序的字段敏感值分析。In:嵌入式系统的语言、编译器和工具支持(LCTES)(2006)·doi:10.1145/1134650.1134659
[20] Morse,J.、Ramalho,M.、Cordeiro,L.、Nicole,D.、Fischer,B.:ESBMC 1.22(竞争贡献)。In:系统构建和分析工具和算法(TACAS)(2014)
[21] Necula,G.C.,McPeak,S.,Weimer,W.:CCured:传统代码的类型安全改装。In:程序设计语言原理(POPL)(2002)·兹比尔1323.68382 ·doi:10.1145/503272.503286
[22] Pearce,D.J.,Kelly,P.H.J.,Hankin,C.:针对C.的高效字段敏感指针分析。In:软件工具和工程的程序分析(PASTE)(2004)·数字对象标识代码:10.1145/996821.996835
[23] Pearce,D.J.,Kelly,P.H.J.,Hankin,C.:C.ACM Trans的高效场敏指针分析。程序。语言系统。30(1),4(2007)·数字对象标识代码:10.1145/1290520.1290524
[24] Rakamarić,Z.,Emmi,M.:SMACK:将源语言细节与验证器实现解耦。In:计算机辅助验证(CAV)(2015)
[25] Rakamarić,Z.,Hu,A.J.:低级代码的可扩展内存模型。In:验证、模型检查和抽象解释(VMCAI)(2009)·doi:10.1007/978-3-540-93900-9_24
[26] Steensgaard,B.:通过类型推理分析具有结构和联合的程序。In:编译器构造(CC)(1996)·doi:10.1007/3-540-61053-7_58
[27] Steensgaard,B.:指向几乎线性时间内的分析。In:编程语言原理(POPL)(1996)·数字对象标识代码:10.1145/237721.237727
[28] Wang,W.:程序分析的分区内存模型。2016年5月,纽约大学博士论文
[29] Wang,W.,Barrett,C.,Wies,T.:级联2.0。In:验证、模型检查和抽象解释(VMCAI)(2014)
[30] Yong,S.H.,Horwitz,S.,Reps,T.:具有结构和类型转换的程序的指针分析。In:编程语言设计与实现(PLDI)(1999)·数字标识代码:10.1145/301618.301647
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。