ACM Home Page
Please provide us with feedback. Feedback
Effective whole-program analysis in the presence of pointers
Full text PdfPdf (1.20 MB)
Source Foundations of Software Engineering archive
Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering table of contents
Lake Buena Vista, Florida, United States
Pages: 46 - 55  
Year of Publication: 1998
ISBN:1-58113-108-9
Also published in ...
Authors
Darren C. Atkinson  Department of Computer Science & Engineering, 0114, University of California, San Diego, San Diego, CA
William G. Griswold  Department of Computer Science & Engineering, 0114, University of California, San Diego, San Diego, CA
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 0,   Downloads (12 Months): 22,   Citation Count: 21
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/288195.288217
What is a DOI?

ABSTRACT

Understanding large software systems is difficult. Traditionally, automated tools are used to assist program understanding. However, the representations constructed by these tools often require prohibitive time and space. Demand-driven techniques can be used to reduce these requirements. However, the use of pointers in modern languages introduces additional problems that do not integrate well with these techniques. We present new techniques for effectively coping with pointers in large software systems written in the C programming language and use our techniques to implement a program slicing tool.First, we use a fast, flow-insensitive, points-to analysis before traditional data-flow analysis. Second, we allow the user to parameterize the points-to analysis so that the resulting program slices more closely match the actual program behavior. Such information cannot easily be obtained by the tool or might otherwise be deemed unsafe. Finally, we present data-flow equations for dealing with pointers to local variables in recursive programs. These equations allow the user to select an arbitrary amount of calling context in order to better trade performance for precision.To validate our techniques, we present empirical results using our program slicer on large programs. The results indicate that cost-effective analysis of large programs with pointers is feasible using our techniques.


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
 
2
3
4
 
5
J. I. Gobat and D. C. Atkinson. The FElt system: User's guide and reference manual. Computer Science Technical Report CS94-376, University of California, San Diego, Department of Computer Science 8s Engineering, 1994.
 
6
7
 
8
 
9
10
 
11
12
13
14
 
15
16
 
17
18
 
19
 
20
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352-357, July 1984.

CITED BY  21

Collaborative Colleagues:
Darren C. Atkinson: colleagues
William G. Griswold: colleagues