Skip to content

Commit

Permalink
Update and rename yadavally2024dynamic-slicing.markdown to yadavally2…
Browse files Browse the repository at this point in the history
…024predictive.markdown
  • Loading branch information
aashishyadavally authored and mallamanis committed Apr 6, 2024
1 parent dcc4477 commit 3f529da
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ year: 2024
additional_links:
- {name: "website", url: "https://aashishyadavally.github.io/assets/pdf/pub-fse2024.pdf"}
- {name: "code", url: "https://github.com/aashishyadavally/nd-slicer"}
tags: ["large language models", "program analysis", "dynamic analysis", "tool"]
tags: ["large language models", "program analysis", "dynamic", "tool"]
---
Program slicing, the process of extracting program statements that influence values at a designated location (known as the slicing criterion), is helpful in both manual and automated debugging. However, such slicing techniques prove ineffective in scenarios where executing specific inputs is prohibitively expensive, or even impossible, as with partial code. In this paper, we introduce ND-Slicer, a predictive slicing methodology that caters to specific executions based on a particular input, overcoming the need for actual execution. We enable such a process by leveraging execution-aware pre-training to learn the dynamic program dependencies, including both dynamic data and control dependencies between variables in the slicing criterion and the remaining program statements. Such knowledge forms the cornerstone for constructing a predictive backward slice. Our empirical evaluation revealed a high accuracy in predicting program slices, achieving an exact-match accuracy of 81.3% and a ROUGE-LCS F1-score of 95.4% on Python programs. As an extrinsic evaluation, we illustrate ND-Slicer’s usefulness in crash detection, with it locating faults with an accuracy of 63.9%. Furthermore, we include an in-depth qualitative evaluation, assessing ND-Slicer’s understanding of branched structures such as if-else blocks and loops, as well as the control flow in inter-procedural calls.

0 comments on commit 3f529da

Please sign in to comment.