A Comparative Study of Static Program Slicing Tools for C

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.

Authors

Publication Details

Published
2025-06-02
DOI
https://doi.org/10.1109/mipro65660.2025.11131933
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
0.00

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

A Comparative Study of Static Program Slicing Tools for C

Zoltán Porkoláb, Kristóf Umann, Gábor Spaits
Software Testing and Debugging Techniques
article

A Comparative Study of Static Program Slicing Tools for C

Zoltán Porkoláb, Kristóf Umann, Gábor Spaits
article en

Abstract

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.

Nemzeti Kutatási, Fejlesztési és Innovaciós Alap
Openalex Percentile: Top 76%
Software Testing and Debugging Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

A Comparative Study of Static Program Slicing Tools for C — Zoltán Porkoláb, Kristóf Umann, et al. · (2025) | TGRS Research Map | TGRS