A Comparative Study of Static Program Slicing Tools for C

Gábor Spaits, Kristóf Umann, Zoltán Porkoláb · 2025

Program slicing techniques have been a hot topic in the field of program analysis since the early 1980s. These techniques are most often used to find all program statements that might effect the state of a so-called slicing criterion. A slicing criterion is usually defined as a variable statement pair. For instance, if a division by zero error occurs program slicing may help reduce the program to the set of those statements that contributed to the bug. In this case, the slicing criterion would be the denominator at the point of the division. There are many approaches to program slicing, most notably dynamic and static. There have been numerous studies on the theoretical capabilities of many dynamic and static slicers and many practical results were drawn on certain benchmarks. With that said no study takes a look at currently available slicing tools on real software. In our paper, we intend to fill this gap by measuring the performance of tools like LLVM-Slicer, Frama-C and Unravel. We also show a methodology for selecting slicing criterion against which slices can be measured, which has historically been a pain point of this field of study.

Read the paper · More papers on PaperTik