ACM Home Page
Please provide us with feedback. Feedback
Improving program slicing with dynamic points-to data
Full text PdfPdf (109 KB)
Source Foundations of Software Engineering archive
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering table of contents
Charleston, South Carolina, USA
SESSION: Static program analysis table of contents
Pages: 71 - 80  
Year of Publication: 2002
ISBN:1-58113-514-9
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
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 29,   Citation Count: 19
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/587051.587062
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

CITED BY  19

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