ACM Home Page
Please provide us with feedback. Feedback
Thin slicing
Full text PdfPdf (304 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation table of contents
San Diego, California, USA
SESSION: Programs analyzed table of contents
Pages: 112 - 122  
Year of Publication: 2007
ISBN:978-1-59593-633-2
Also published in ...
Authors
Manu Sridharan  University of California: Berkeley, Berkeley, CA
Stephen J. Fink  IBM T.J. Watson Research Center, Yorktown Heights, NY
Rastislav Bodik  University of California: Berkeley, Berkeley, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 115,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1250734.1250748
What is a DOI?

ABSTRACT

Program slicing systematically identifies parts of a program relevant to a seed statement. Unfortunately, slices of modern programs often grow too large for human consumption. We argue that unwieldy slices arise primarily from an overly broad definition of relevance, rather than from analysis imprecision. While a traditional slice includes all statements that may affect a point of interest, not all such statements appear equally relevant to a human.

As an improved method of finding relevant statements, we propose thin slicing. A thin slice consists only of producer statements for the seed, i.e., those statements that help compute and copy avalue to the seed. Statements that explain why producers affect the seed are excluded. For example, for a seed that reads a value from a container object, a thin slice includes statements that store the value into the container, but excludes statements that manipulate pointers to the container itself. Thin slices can also be hierarchically expanded to include statements explaining how producers affect the seed, yielding a traditional slice in the limit.

We evaluated thin slicing for a set of debugging and program understanding tasks. The evaluation showed that thin slices usually included the desired statements for the tasks (e.g., the buggy statement for a debugging task). Furthermore, in simulated use of a slicing tool, thin slices revealed desired statements after inspecting 3.3 times fewer statements than traditional slicing for our debugging tasks and 9.4 times fewer statements for our program understanding tasks. Finally, our thin slicing algorithm scales well to relatively large Java benchmarks, suggesting that thin slicing represents an attractive option for practical tools.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Codesurfer. http://www.grammatech.com/products/codesurfer/.
 
2
T.J. Watson Libraries for Analysis. http://wala.sourceforge.net.
3
 
4
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, University of Copenhagen, DIKU, 1994.
5
6
 
7
8
9
10
11
 
12
J. Krinke. Advanced Slicing of Sequential and Concurrent Programs. PhD thesis, University of Passau, 2003.
 
13
 
14
15
16
17
18
 
19
M. Renieris and S. P. Reiss. Fault localization with nearest neighbor queries. In IEEE International Conference on Automated Software Engineering (ASE), 2003.
 
20
T. Reps. Program analysis via graph reachability. Information and Software Technology, 40(11--12):701--726, November/December 1998.
21
22
23
24
25
 
26
T. Teitelbaum. Personal communication regarding CodeSurfer. 2007.
 
27
F. Tip. A survey of program slicing techniques. Journal of programming languages, 3:121--189, 1995.
 
28
29
30
 
31
 
32
33
34

CITED BY  12

Collaborative Colleagues:
Manu Sridharan: colleagues
Stephen J. Fink: colleagues
Rastislav Bodik: colleagues