ACM Home Page
Please provide us with feedback. Feedback
Verifying dereference safety via expanding-scope analysis
Full text PdfPdf (444 KB)
Source
International Symposium on Software Testing and Analysis archive
Proceedings of the 2008 international symposium on Software testing and analysis table of contents
Seattle, WA, USA
SESSION: Static analysis table of contents
Pages 213-224  
Year of Publication: 2008
ISBN:978-1-60558-050-0
Authors
Alexey Loginov  GrammaTech, Inc., Ithaca, NY, USA
Eran Yahav  IBM T.J. Watson Research Center, Hawthorne, NY, USA
Satish Chandra  IBM T.J. Watson Research Center, Hawthorne, NY, USA
Stephen Fink  IBM T.J. Watson Research Center, Hawthorne, NY, USA
Noam Rinetzky  Tel Aviv University, Tel Aviv, Israel
Mangala Nanda  IBM IRL, New Delhi, India
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 85,   Citation Count: 2
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/1390630.1390657
What is a DOI?

ABSTRACT

This paper addresses the challenging problem of verifying the safety of pointer dereferences in real Java programs. We provide an automatic approach to this problem based on a sound interprocedural analysis. We present a staged expanding-scope algorithm for interprocedural abstract interpretation, which invokes sound analysis with partial programs of increasing scope. This algorithm achieves many benefits typical of whole-program interprocedural analysis, but scales to large programs by limiting analysis to small program fragments. To address cases where the static analysis of program fragments fails to prove safety, the analysis also suggests possible annotations which, if a user accepts, ensure the desired properties. Experimental evaluation on a number of Java programs shows that we are able to verify 90% of all dereferences soundly and automatically, and further reduce the number of remaining dereferences using non-nullness annotations.


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
Barnett, M., Leino, K., and Shulte, W. The Spec# programming system: An overview. In CASSIS (2004).
 
2
 
3
Cok, D. R., and Kiniry, J. ESC/Java2: Uniting ESC/Java and JML. In CASSIS (2004).
4
 
5
6
7
 
8
9
10
11
 
12
13
14
 
15
JSR 305: Annotations for software defect detection. http://jcp.org/en/jsr/detail?id=305.
 
16
Larus, J., Ball, T., Das, M., DeLine, R., Fahndrich, M., Pincus, J., Rajamani, S., and Venkatapathy, R. Righting software. IEEE Software (2004).
17
18
19
 
20
21
22
 
23
WALA: The T. J. Watson Libraries for Analysis. http://wala.sourceforge.net.
24


Collaborative Colleagues:
Alexey Loginov: colleagues
Eran Yahav: colleagues
Satish Chandra: colleagues
Stephen Fink: colleagues
Noam Rinetzky: colleagues
Mangala Nanda: colleagues