🤖 AI Summary
Traditional static slicing relies on expensive dependency graph reachability analysis, limiting scalability to large or syntactically incomplete programs; learning-based approaches offer robustness but suffer from insufficient precision. This paper proposes SliceMate—the first LLM-powered multi-agent framework for static slicing—comprising synthesis, verification, and optimization agents. It eliminates dependency graph construction, enables inter-procedural and cross-file incremental scanning, and supports automatic repair. Key innovations include program dependency reasoning, dynamic scope expansion, and a joint completeness-conciseness verification mechanism, complemented by a convergence control module. Evaluated on SliceBench—a curated benchmark of 2,200 Java/Python programs—SliceMate significantly outperforms state-of-the-art tools, achieving precise slicing on programs up to 8,577 lines while unifying high accuracy with strong scalability.
📝 Abstract
Static program slicing, which extracts the executable portions of a program that affect the values at a specific location, supports many software analysis tasks such as debugging and security auditing. However, traditional slicing tools rely on computationally expensive reachability analysis over dependency graphs, which struggle to scale to large programs and often fail to handle code with incomplete syntax. Recently emerged learning-based methods, while more robust to such cases, still fall short of achieving comparable performance to traditional methods on well-formed code.
In this work, we propose SliceMate, a novel static program slicing solution powered by Large Language Model (LLM) agents. It bypasses the need for explicit dependency graph construction and achieving superior slicing accuracy. Concretely, SliceMate integrates three specialized agents: (1) a synthesis agent that produces candidate slices by incrementally expanding the scan scope across functions and files guided by LLM-inferred dependencies; (2) a verification agent that performs conciseness and completeness checks of the candidate slices, detecting missing or irrelevant statements; and (3) a refinement agent that repairs the slices with minimal edits in accordance with the verification results. These agents are orchestrated by a control module that ensures timely convergence and outputs high-quality slices without manual intervention. For rigorous evaluation, we construct a new and high-quality benchmark, SliceBench, comprising 2,200 manually annotated Java and Python programs, with program lengths ranging from 5 to 8,577 lines, significantly larger than those in existing slicing benchmarks. Experimental results show that SliceMate greatly outperforms both traditional and learning-based slicing tools.