Parallel program analysis on path ranges

被引:0
作者
Haltermann, Jan [1 ]
Jakobs, Marie-Christine [2 ]
Richter, Cedric [1 ]
Wehrheim, Heike [1 ]
机构
[1] Carl von Ossietzky Univ Oldenburg, Dept Comp Sci, Ammerlaender Heerstr 114-118, D-26129 Oldenburg, Germany
[2] Ludwig Maximilians Univ Munchen, Dept Comp Sci, Oettingenstr 67, D-80538 Munich, Germany
关键词
Ranged symbolic execution; Cooperative software verification; Parallel configurable program analysis; SYMBOLIC EXECUTION; MODEL CHECKING; VERIFICATION; ABSTRACTIONS;
D O I
10.1016/j.scico.2024.103154
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Symbolic execution is a software verification technique symbolically running programs and thereby checking for bugs. Ranged symbolic execution performs symbolic execution on program parts, so-called path ranges , in parallel. Due to the parallelism, verification is accelerated and hence scales to larger programs. In this paper, we discuss a generalization of ranged symbolic execution to arbitrary program analyses. More specifically, we present a verification approach that splits programs into path ranges and then runs arbitrary analyses on the ranges in parallel. Our approach in particular allows to run different analyses on different program parts. We have implemented this generalization on top of the tool CPA CHECKER and evaluated it on programs from the SVCOMP benchmark. Our evaluation shows that verification can benefit from the parallelization of the verification task, but also needs a form of work stealing (between analyses) to become efficient.
引用
收藏
页数:24
相关论文
共 50 条
[31]   Numerical Program Analysis and Testing [J].
Gao, Zheng .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :779-782
[32]   Program analysis as constraint solving [J].
Gulwani, Sumit ;
Srivastava, Saurabh ;
Venkatesan, Ramarathnam .
ACM SIGPLAN NOTICES, 2008, 43 (06) :281-292
[33]   Probabilistic Program Performance Analysis [J].
Stefanakos, Ioannis ;
Calinescu, Radu ;
Gerasimou, Simos .
2021 47TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2021), 2021, :148-157
[34]   Reachability Analysis of Program Variables [J].
Nikolic, Durica ;
Spoto, Fausto .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2013, 35 (04)
[35]   Conditional Quantitative Program Analysis [J].
Gerrard, Mitchell ;
Borges, Mateus ;
Dwyer, Matthew B. ;
Filieri, Antonio .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (04) :1212-1227
[36]   A Shape Analysis for Optimizing Parallel Graph Programs [J].
Prountzos, Dimitrios ;
Manevich, Roman ;
Pingali, Keshav ;
McKinley, Kathryn S. .
ACM SIGPLAN NOTICES, 2011, 46 (01) :159-171
[37]   Parallel reachability analysis of hybrid systems in XSpeed [J].
Gurung, Amit ;
Ray, Rajarshi ;
Bartocci, Ezio ;
Bogomolov, Sergiy ;
Grosu, Radu .
INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2019, 21 (04) :401-423
[38]   Simulating Operational Memory Models Using Off-the-Shelf Program Analysis Tools [J].
Iorga, Dan ;
Wickerson, John ;
Donaldson, Alastair F. .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (12) :5084-5102
[39]   Program Analysis: From Qualitative Analysis to Quantitative Analysis (NIER Track) [J].
Liu, Sheng ;
Zhang, Jian .
2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, :956-959
[40]   Timing analysis enhancement for synchronous program [J].
Pascal Raymond ;
Claire Maiza ;
Catherine Parent-Vigouroux ;
Fabienne Carrier ;
Mihail Asavoae .
Real-Time Systems, 2015, 51 :192-220