ACM Home Page
Please provide us with feedback. Feedback
Improving program slicing with dynamic points-to data
Full text PdfPdf (1.05 MB)
Source ACM SIGSOFT Software Engineering Notes archive
Volume 27 ,  Issue 6  (November 2002) table of contents
SESSION: Session 4: static program analysis table of contents
Pages: 71 - 80  
Year of Publication: 2002
ISSN:0163-5948
Authors
Markus Mock  University of Washington, Seattle, WA
Darren C. Atkinson  Santa Clara University, Santa Clara, CA
Craig Chambers  University of Washington, Seattle, WA
Susan J. Eggers  University of Washington, Seattle, WA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 20,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

Program slicing is a potentially useful analysis for aiding program understanding. However, slices of even small programs are often too large to be generally useful. Imprecise pointer analyses have been suggested as one cause of this problem. In this paper, we use dynamic points-to data, which represents optimal or optimistic pointer information, to obtain a bound on the best case slice size improvement that can be achieved with improved pointer precision. Our experiments show that slice size can be reduced significantly for programs that make frequent use of calls through function pointers because for them the dynamic pointer data results in a considerably smaller call graph, which leads to fewer data dependences. Programs without or with only few calls through function pointers, however, show only insignificant improvement. We identified Amdahl's law as the reason for this behavior: C programs appear to have a large fraction of direct data dependences so that reducing spurious dependences via pointers is only of limited benefit. Consequently, to make slicing useful in general for such programs, improvements beyond better pointer analyses will be necessary. On the other hand, since we show that collecting dynamic function pointer information can be performed with little overhead (average slowdown of 10% for our benchmarks), dynamic pointer information may be a practical approach to making slicing of programs with frequent function pointer use more successful in reality.


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
G. M. Amdahl. Validity of the single processor approach to achieving large scale computing capabilities. In Proceedings of the AFIPS 1967 Joint Computer Conference, pages 483-485, Atlantic City, NJ, Apr. 1967.
 
2
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. Ph.D. dissertation, University of Copenhagen, Department of Computer Science, May 1994.
 
3
 
4
5
 
6
 
7
L. Beltracchi, J. R. Lyle, and D. R. Wallace. Using a program slicing CASE tool for evaluating high integrity software systems. In Proceedings of the 1996 American Nuclear Society International Topical Meeting on Nuclear Plant Instrumentation, Control and Human-Machine Interface Technologies, pages 1033-1039, University Park, PA, May 1996.
 
8
9
 
10
M. A. Francel and S. Rugaber. The value of slicing while debugging. In Proceedings of the 7th International Workshop on Program Comprehension, pages 151-169, Pittsburgh, PA, May 2001,
 
11
12
 
13
GrammaTech, Inc. Codesurfer user guide and reference manual.
 
14
15
16
17
 
18
19
 
20
M. Mock, D. C. Atkinson, C. Chambers, and S. J. Eggers. Gathering dynamic points-data and its incorporation in a program slicing tool for C programs. School of Engineering Technical Report COEN-2002-03-16, Santa Clara University, Department of Computer Engineering, Mar. 2002.
 
21
M. Mock, M. Berryman, C. Chambers, and S. J. Eggers. Calpa: A tool for automating dynamic compilation. In Proceedings of the 2nd Workshop on Feedback-Directed Optimization, pages 100-109, Haifa, Israel, Nov. 1999.
22
23
 
24
25
26
 
27
28
 
29
30
 
31
F. Tip. A survey of program slicing techniques. J. Prog. Lang., 3(3):121-189, Sept. 1995.
32
 
33
M. Weiser. Program slicing. IEEE Trans. Softw. Eng., SE-10(4):352-357, July 1984.
34


Collaborative Colleagues:
Markus Mock: colleagues
Darren C. Atkinson: colleagues
Craig Chambers: colleagues
Susan J. Eggers: colleagues