×

对称并发程序的反示例引导抽象细化。 (英语) Zbl 1284.68179号

摘要:谓词抽象和反示例引导的抽象精化(CEGAR)已经实现了对用主流编程语言编写的软件的有限状态模型检查。这种技术组合在分析系统级顺序C代码方面取得了成功。相比之下,几乎没有证据表明CEGAR在共享变量并发软件中的有效应用。我们将这种差距归因于缺乏抽象策略,无法对生成的多线程布尔程序进行可扩展的分析。本文的目标是缩小这一差距。我们开发了一种对称软件CEGAR技术:它考虑到由执行相同过程的多个线程组成的程序的复制结构,并生成一个布尔程序模板,该模板的多线程执行完全超过了原始并发程序。模型检查期间的状态爆炸现在可以通过利用对称性来吸收此模板的并行实例化。我们已经在一个工具SymmPa中实现了我们的方法,并在一系列同步程序上证明了其优于其他方法的性能。

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
60年第68季度 规范和验证(程序逻辑、模型检查等)
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68问题85 并发和分布式计算的模型和方法(进程代数、互模拟、转换网等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Ball T,Cook B,Das S,Rajamani SK(2004)《软件谓词抽象中的精炼近似》。包含:TACAS。计算机科学课堂讲稿,第2988卷。柏林施普林格,第388-403页·Zbl 1126.68344号
[2] Ball T,Majumdar R,Millstein TD,Rajamani SK(2001)C程序的自动谓词抽象。In:编程语言设计与实现(PLDI),第203-213页
[3] Ball T,Rajamani S(2002)SLAM项目:通过静态分析调试系统软件。在:程序设计语言原理(POPL),第1-3页
[4] Basler G、Mazzucchi M、Wahl T、Kroening D(2010)上下文软件反抽象。表格方法系统设计36(3):223–245·Zbl 1213.68362号 ·doi:10.1007/s10703-010-0096-7
[5] Chaki S、Clarke EM、Kidd N、Reps T、Touili T(2006)使用递归调用验证并发消息传递C程序。In:用于构建和分析系统的工具和算法(TACAS)。计算机科学课堂讲稿。柏林施普林格,第334-349页·Zbl 1180.68109号
[6] Cimatti A、Micheli A、Narasamdya I、Roveri M(2010)《验证系统C:软件模型检查方法》。In:计算机辅助设计(FMCAD)中的形式化方法
[7] Clarke E,Grumberg O,Jha S,Lu Y,Veith H(2003)符号模型检查的反示例引导抽象求精。美国临床医学杂志50(5):752–794·Zbl 0974.68517号 ·doi:10.1145/876638.876643
[8] Cook B、Kroening D、Sharygina N(2007)《创建无限线程的布尔程序验证》。计算机科学理论388(1-3):227–242·兹比尔1143.68043 ·doi:10.1016/j.tcs.2007.07.050
[9] Corbet J,Rubini A,Kroah-Hartman G(2005)Linux设备驱动程序,第3版。塞巴斯托波尔O'Reilly Media
[10] Das S,Dill DL(2001)抽象过渡关系的逐次逼近。In:计算机科学中的逻辑(LICS)
[11] Donaldson AF,Kaiser A,Kroening D,Wahl T(2011)共享变量并发程序的对称感知谓词抽象。输入:CAV。计算机科学课堂讲稿,第6806卷。柏林施普林格,第356–371页
[12] Donaldson AF、Kaiser A、Kroening D、Wahl T(2011)共享变量并发程序的对称感知谓词抽象(扩展技术报告)。CoRR.arXiv公司:1102.2330
[13] Donaldson AF,Miller A(2008)《Promela的自动对称检测》。《汽车杂志》理由41(3-4):251-293·Zbl 1191.68411号 ·doi:10.1007/s10817-008-9107-4
[14] Flanagan C,Qadeer S(2003)《线程模块模型检查》。In:软件模型检查(SPIN)·Zbl 1023.68529号
[15] Graf S,Saídi H(1997)用PVS构造抽象状态图。In:计算机辅助验证(CAV)。计算机科学课堂讲稿。柏林施普林格,第72-83页
[16] Gupta A、Popeea C、Rybalchenko A(2011)《验证多线程程序的谓词抽象和精化》。输入:POPL。ACM,纽约,第331-344页·Zbl 1284.68427号
[17] Gupta A、Popeea C、Rybalchenko A(2011)线程器:多线程程序的基于约束的验证器。In:计算机辅助验证(CAV)·Zbl 1284.68427号
[18] Henzinger T,Jhala R,Majumdar R,Qadeer S(2003)线程模块抽象细化。输入:CAV。计算机科学课堂讲稿。施普林格,柏林,第262–274页·兹比尔1278.68175
[19] Henzinger T,Jhala R,Majumdar R(2004),通过上下文推理进行种族检查。In:编程语言设计与实现(PLDI),第1-13页
[20] Jones CB(1983)《为干扰程序开发方法的初步步骤》。ACM Trans程序语言系统5(4):596–619·Zbl 0517.68032号 ·数字对象标识代码:10.1145/69575.69577
[21] Kaiser A、Kroening D、Wahl T(2010),参数化并发程序中的动态截止检测。In:计算机辅助验证(CAV)
[22] Lu S,Park S,Seo E,Zhou Y(2008)从错误中学习:对真实世界并发错误特征的综合研究。In:编程语言和操作系统(ASPLOS)的体系结构支持
[23] McKenney P(2007)使用Promela和Spin验证并行算法。LWN.net,周刊
[24] Mellor-Crummey J,Scott M(1991)共享内存多处理器上可伸缩同步的算法。ACM事务计算系统9(1):21–65·数字对象标识代码:10.1145/103727.103729
[25] Miller A、Donaldson A、Calder M(2006),时序逻辑模型检查中的对称性。ACM计算。Surv公司。38(3)
[26] Speer-Owicki S(1975)并行程序公理化证明技术。康奈尔大学博士论文
[27] Peierls T、Goetz B、Bloch J、Bowbeer J、Lea D、Holmes D(2005)《Java并发实践》。Addison-Wesley,阅读
[28] Timm N,Wehrheim H(2010)关于对称性和聚光灯——验证参数化系统。包含:ICFEM。计算机科学课堂讲稿。柏林施普林格,第534-548页
[29] La Torre S,Madhusudan P,Parlato G(2010)使用线性接口的参数化并发程序模型检查。In:计算机辅助验证(CAV)
[30] Wahl T,Donaldson A(2010)复制和抽象:自动化形式验证中的对称性。对称2(2):799–847·doi:10.3390/sym2020799
[31] Yang Y,Chen X,Gopalakrishnan G,Wang C(2009)使用动态分析自动发现多线程程序中的转换对称性。输入:SPIN
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。