An Incremental Slicing Method for Functional Programs
Prasanna Kumar K., Amitabha Sanyal, Amey Karkare

TL;DR
This paper introduces an incremental static slicing method for functional programs that reuses previous analysis results to efficiently compute slices for new criteria, significantly improving performance.
Contribution
It presents the first incremental slicing algorithm for functional programs, utilizing function summaries and a pre-computation step for faster slicing.
Findings
Incremental slicing runs orders of magnitude faster than non-incremental methods.
The approach is validated on a Scheme subset with correct results.
Pre-computation enables low-cost updates for new slicing criteria.
Abstract
Several applications of slicing require a program to be sliced with respect to more than one slicing criterion. Program specialization, parallelization and cohesion measurement are examples of such applications. These applications can benefit from an incremental static slicing method in which a significant extent of the computations for slicing with respect to one criterion could be reused for another. In this paper, we consider the problem of incremental slicing of functional programs. We first present a non-incremental version of the slicing algorithm which does a polyvariant analysis 1 of functions. Since polyvariant analyses tend to be costly, we compute a compact context-independent summary of each function and then use this summary at the call sites of the function. The construction of the function summary is non-trivial and helps in the development of the incremental version. The…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Formal Methods in Verification · Parallel Computing and Optimization Techniques
