×

基于图形的数据结构的形状中性分析。 (英语) Zbl 1451.68174号

摘要:格式错误的数据结构可能会导致运行时错误,例如任意内存访问或损坏。尽管如此,为低级堆操作程序推理数据结构属性仍然具有挑战性。在本文中,我们提出了一种基于约束的程序分析,该分析在程序操作堆时,检查给定目标数据结构属性的数据结构完整性。我们的方法是使用目标程序的类型定义自动生成属性的解算器。生成的解算器是使用内置堆、整数和等式解算器的约束处理规则(CHR)扩展来实现的。我们的程序分析的一个关键属性是,目标数据结构属性形状中性即,分析不检查与给定数据结构图相关的属性形状例如双链接列表与树。尽管如此,该分析可以检测各种数据结构操作程序中的错误,包括使用列表、树、DAG、图等的程序。我们提出了一种使用可满足性模块约束处理规则(SMCHR)系统的实现。实验结果表明,我们的方法适用于实际的C程序。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68N17号 逻辑编程
68第05页 数据结构
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Berdine,J。;加尔卡尼奥,C。;库克,B。;Distefano,D。;奥赫恩,P。;Wies,T。;Yang,H.,计算机辅助验证,复合数据结构的形状分析,(2007),Springer
[2] Berdine,J。;加尔卡尼奥,C。;O'Hearn,P.,《组件和对象的形式化方法》,SmallFoot:使用分离逻辑的模块化自动断言检查,(2005),Springer
[3] Berdine,J。;库克,B。;Ishtiaq,S.,计算机辅助验证,SLAyer:系统级代码的内存安全,(2011),Springer
[4] Boehm,H。;Weiser,M.,《不合作环境中的垃圾收集,软件实践和经验》,18,9,(1988)
[5] Distefano,D。;奥赫恩,P。;Yang,H.,系统构建和分析的工具和算法,基于分离逻辑的局部形状分析,(2006),Springer
[6] Duck,G.,SMCHR:可满足性模块约束处理规则,逻辑编程理论与实践,12,4-5601-618,(2012)·Zbl 1260.68059号 ·doi:10.1017/S1471068412000208
[7] Duck,G.,国际人工智能联合会议,可满足性模约束处理规则(扩展摘要),(2013年),AAAI
[8] 鸭子,G。;Jaffar,J。;Koh,N.,约束编程,基于约束的堆和分离程序推理,(2013),施普林格
[9] 鸭子,G。;Yap,R.,编译器构造,用低脂指针保护堆边界,(2016),ACM
[10] 鸭子,G。;Yap,R。;Cavallaro,L.,网络和分布式系统安全研讨会,低脂肪指针的堆栈边界保护,(2017),互联网协会
[11] Dudka,K。;佩林格,P。;Vojnar,T.,计算机辅助验证,Predator:使用分离逻辑检查动态数据结构操作的实用工具,(2011),Springer
[12] Dudka,K。;佩林格,P。;Vojnar,T.,静态分析,低级别列表操作的字节精确验证,(2013),Springer
[13] Frühwirth,T.,约束处理规则的理论与实践,逻辑程序设计杂志,37,(1998)·Zbl 0920.68029号
[14] Frühwirth,T.,《约束处理规则》,(2009),剑桥大学出版社·Zbl 1182.68039号
[15] Hinze,R。;Paterson,R.,《手指树:一种简单的通用数据结构》,《函数编程杂志》,16,2,(2006)·Zbl 1088.68041号
[16] 雅各布斯,B。;Smans,J。;Philippearts,P。;Vogels,F。;佩宁克斯,W。;Piessens,F.,NASA Formal methods,VeriFast:一个强大、可靠、可预测的C和Java快速验证程序,(2011),Springer
[17] Kroening,D。;Tautschnig,M.,《系统构建和分析的工具和算法》,CBMC:C有界模型检查器,(2014),Springer
[18] (2018)
[19] 马修斯,J。;摩尔,J。;Ray,S。;Vroon,D.,《程序设计、人工智能和推理逻辑,通过定理证明生成验证条件》(2006),施普林格出版社
[20] Merz,F。;福克,S。;Sinz,C.,《验证软件:理论、工具、实验》,LLBMC:使用编译器IR对C和C++程序进行有界模型检查,(2012),Springer
[21] Reynolds,J.,《计算机科学中的逻辑》,《分离逻辑:共享可变数据对象的逻辑》(2002),IEEE
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。