Recently, a few whole-program static slicers for the C programming
language have been developed, permitting a variety of hypotheses about
time--precision tradeoffs in program analysis for software engineering to be
tested. This paper reports an initial investigation into these claims through
GrammaTech's CodeSurfer and UCSD's Sprite research prototype, which represent
two very different approaches in the program analysis tool design space. First,
it was found that algorithmic superiority tended to provide large improvements
in relative precision in select cases. Second, a number of non-algorithmic
design choices had a substantial and sometimes unintuitive influence on slice
results. Third, considerable expertise and time was required to discern the
reasons why a particular statement appeared in a slice, diminishing the slice's
probable usefulness. These results provide recommendations for future tool
design.
Pre-2018 CSE ID: CS2001-0668