Replication package for article 'Ranged Program Analysis via Instrumentation'
Creators: name: Haltermann, Jan
name: Jakobs, Marie-Christine
name: Richter, Cedric
name: Wehrheim, Heike
Publisher: name: Zenodo
Year: 2023

description: This artifact contains everything for reproducting the findings from the article Ranged Program Analysis via Instrumentation Abstract. Ranged program analysis has recently been proposed as a<br> means to scale a single analysis and to define parallel cooperation of<br> different analyses. To this end, ranged program analysis first splits a<br> program’s paths into different parts. Then, it runs one analysis instance<br> per part, thereby restricting the instance to analyze only the paths of<br> the respective part. To achieve the restriction, the analysis is combined<br> with a so-called range reduction component responsible for excluding the<br> paths outside of the part.<br> So far, ranged program analysis and in particular the range reduction<br> component have been defined in the framework of configurable program<br> analysis (CPA). In this paper, we suggest program instrumentation as<br> an alternative for achieving the analysis restriction, which allows us to<br> use arbitrary analyzers in ranged program analysis. Our evaluation on<br> programs from the SV-COMP benchmark shows that ranged program<br> analysis with instrumentation performs comparably to the CPA-based<br> version and that the evaluation results for the CPA-based ranged pro-<br> gram analysis carry over to the instrumentation-based version. <br> This artifact for the article "Ranged Program Analysis via Instrumentation", Paper ID 7<br> main purpose is to replicate the claims from the paper.<br> <br> We apply for the badges Artifact Available and Artifact Reusable (and thus Artifact Functional)<br> <br> In this paper, we propose ranged program analysis via instrumentation to be able to use arbitrary off-the-shelf tools within ranged program analysis.<br> This allows us to not only parallelize a single analysis, but also run different analyses on different ranges of a program in parallel.<br> In our paper, we answer three research questions.<br> Therefore, we conducted multiple experiments to analyze the effectiveness<br> and the efficiency of different compositions of ranged analyses in comparison<br> with existing analyses on 10229 C-tasks from the SV-Benchmark collection.<br> The artifact contains the raw data collected during the execution of the experiments<br> with Benchexec (the CPU and wall time per run, the tool log produced, and the final verdict computed by each tool)<br> as well as our implementation.<br> <br> The provided artifact is reusable,<br> as we provide a simple and easy way to use off-the-shelf tools within ranged analysis.<br> Tool developers only need to create a Benchexec and CoVeriTeam configuration for their tool to use it within ranged program analysis.<br> In addition, we include all evaluation scripts as Juypter Notebooks<br> to reproduce the findings from the paper, (e.g. the number of tasks solver per configuration,<br> or the time used by a composition of ranged analyses in comparison to a default version).<br> As re-running all experiments takes several months on a single machine,<br> we additionally created a much smaller benchmark set containing 5 files for<br> reusing the artifact to reproduce the findings from the paper on a small scale.<br> <br> <br> All relevant information on how to test and reproduce the results can be found in the README.html,<br> located at the folder `documents` in the VM.