Skip to content

Commit 8ec8336

Browse files
aashishyadavallymallamanis
authored andcommitted
Update and rename yadavally2024static-slicing.markdown to yadavally2024learning.markdown
1 parent 616ee6a commit 8ec8336

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Diff for: _publications/yadavally2024static-slicing.markdown renamed to _publications/yadavally2024learning.markdown

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ year: 2024
77
additional_links:
88
- {name: "website", url: "https://aashishyadavally.github.io/assets/pdf/pub-oopsla2024.pdf"}
99
- {name: "code", url: "https://github.com/aashishyadavally/ns-slicer"}
10-
tags: ["large language models", "program analysis", "static analysis", "tool"]
10+
tags: ["large language models", "program analysis", "static", "tool"]
1111
---
1212
Traditional program slicing techniques are crucial for early bug detection and manual/automated debugging of online code snippets. Nevertheless, their inability to handle incomplete code hinders their real-world applicability in such scenarios. To overcome these challenges, we present NS-Slicer, a novel learning-based approach that predicts static program slices for both complete and partial code. Our tool leverages a pre-trained language model to exploit its understanding of fine-grained variable-statement dependencies within source code. With this knowledge, given a variable at a specific location and a statement in a code snippet, NS-Slicer determines whether the statement belongs to the backward slice or forward slice, respectively. We conducted a series of experiments to evaluate NS-Slicer’s performance. On complete code, it predicts the backward and forward slices with an F1-score of 97.41% and 95.82%, respectively, while achieving an overall F1-score of 96.77%. Notably, in 85.20% of the cases, the static program slices predicted by NS-Slicer exactly match entire slices from the oracle. For partial programs, it achieved an F1-score of 96.77%–97.49% for backward slicing, 92.14%–95.40% for forward slicing, and an overall F1-score of 94.66%–96.62%. Furthermore, we demonstrate NS-Slicer’s utility in vulnerability detection (VD), integrating its predicted slices into an automated VD tool. In this setup, the tool detected vulnerabilities in Java code with a high F1-score of 73.38%. We also include the analyses studying NS-Slicer’s promising performance and limitations, providing insights into its understanding of intrinsic code properties such as variable aliasing, leading to better slicing.

0 commit comments

Comments
 (0)