ACM Home Page
Please provide us with feedback. Feedback
Deriving specialized program analyses for certifying component-client conformance
Full text PdfPdf (158 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation table of contents
Berlin, Germany
SESSION: Program Correctness table of contents
Pages: 83 - 94  
Year of Publication: 2002
ISBN:1-58113-463-0
Also published in ...
Authors
G. Ramalingam  IBM T.J. Watson Research Center, Yorktown Heights, NY
Alex Warshavsky  IBM Haifa Research Laboratory and Tel-Aviv University, Tel-Aviv, 69978 Israel
John Field  IBM T.J. Watson Research Center, Yorktown Heights, NY
Deepak Goyal  IBM T.J. Watson Research Center, Yorktown Heights, NY
Mooly Sagiv  Tel-Aviv University
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 43,   Citation Count: 13
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/512529.512540
What is a DOI?

ABSTRACT

We are concerned with the problem of statically certifying (verifying) whether the client of a software component conforms to the component's constraints for correct usage. We show how conformance certification can be efficiently carried out in a staged fashion for certain classes of first-order safety (FOS) specifications, which can express relationship requirements among potentially unbounded collections of runtime objects. In the first stage of the certification process, we systematically derive an abstraction that is used to model the component state during analysis of arbitrary clients. In general, the derived abstraction will utilize first-order predicates, rather than the propositions often used by model checkers. In the second stage, the generated abstraction is incorporated into a static analysis engine to produce a certifier. In the final stage, the resulting certifier is applied to a client to conservatively determine whether the client violates the component's constraints. Unlike verification approaches that analyze a specification and client code together, our technique can take advantage of computationally-intensive symbolic techniques during the abstraction generation phase, without affecting the performance of client analysis. Using as a running example the Concurrent Modification Problem (CMP), which arises when certain classes defined by the Java Collections Framework are misused, we describe several different classes of certifiers with varying time/space/precision tradeoffs. Of particular note are precise, polynomial-time, flow- and context-sensitive certifiers for certain classes of FOS specifications and client programs. Finally, we evaluate a prototype implementation of a certifier for CMP on a variety of test programs. The results of the evaluation show that our approach, though conservative, yields very few "false alarms," with acceptable performance.


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
Canvas project. http://www.research.ibm.com/menage/canvas/
 
5
6
 
7
8
9
10
 
11
P. Cousot. Semantic foundations of program analysis. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, chapter~10, pages 303--342. Prentice-Hall, Englewood Cliffs, NJ, 1981
 
12
13
 
14
 
15
C. Flanagan and K. R. M. Leino. Houdini, an annotation assistant for ESC/Java. Technical Report 2000-003, Compaq Systems Research Center, 2000
 
16
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, Reading, MA, 1995
17
 
18
 
19
20
21
 
22
Kaffe. http://rpmfind.net/tools/Kaffe, 2001
23
 
24
G. T. Leavens. The Java Modeling Language (JML). http://www.cs.iastate.edu/~leavens/JML.html
 
25
K. R. M. Leino, G. Nelson, and J. B. Saxe. ESC/Java user's manual. Technical Note 2000-002, Compaq Systems Research Center, October 2000
 
26
27
 
28
 
29
G. Ramalingam, A. Warshavsky, J. Field, and M. Sagiv. Deriving specialized heap analyses for verifying component-client conformance. Technical Report RC22145, IBM T.J. Watson Research Center, 2001
30
 
31
 
32
N. Rinetzky. Interprocedural shape analysis. Master's thesis, Technion-Israel Institute of Technology, Haifa, Israel, Dec. 2000
33
34
 
35
 
36
 
37
 
38
A. Warshavsky. http://www.math.tau.ac.il/~walex, 2001
 
39
40

CITED BY  13

Collaborative Colleagues:
G. Ramalingam: colleagues
Alex Warshavsky: colleagues
John Field: colleagues
Deepak Goyal: colleagues
Mooly Sagiv: colleagues