ACM Home Page
Please provide us with feedback. Feedback
Permissive interfaces
Full text PdfPdf (562 KB)
Source Foundations of Software Engineering archive
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering table of contents
Lisbon, Portugal
SESSION: Software change analysis table of contents
Pages: 31 - 40  
Year of Publication: 2005
ISBN:1-59593-014-0
Also published in ...
Authors
Thomas A. Henzinger  EPFL and UC Berkeley
Ranjit Jhala  UC San Diego
Rupak Majumdar  UC Los Angeles
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 53,   Citation Count: 11
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/1081706.1081713
What is a DOI?

ABSTRACT

A modular program analysis considers components independently and provides a succinct summary for each component, which is used when checking the rest of the system. Consider a system consisting of a library and a client. A temporal summary, or interface, of the library specifies legal sequences of library calls. The interface is safe if no call sequence violates the library's internal invariants; the interface is permissive if it contains every such sequence. Modular program analysis requires full interfaces, which are both safe and permissive: the client does not cause errors in the library if and only if it makes only sequences of library calls that are allowed by the full interface of the library.Previous interface-based methods have focused on safe interfaces, which may be too restrictive and thus reject good clients. We present an algorithm for automatically synthesizing software interfaces that are both safe and permissive. The algorithm generates interfaces as graphs whose vertices are labeled with predicates over the library's internal state, and whose edges are labeled with library calls. The interface state is refined incrementally until the full interface is constructed. In other words, the algorithm automatically synthesizes a typestate system for the library, against which any client can be checked for compatibility. We present an implementation of the algorithm which is based on the BLAST model checker, and we evaluate some case studies.


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
J. Cobleigh, D. Giannakopoulou, and C.S. Pasareanu. Learning assumptions for compositional verification. In TACAS, LNCS 2619, pp. 331--346. Springer 2003.
4
5
 
6
 
7
M.A. Fahndrich and R. DeLine. Typestates for objects. In ECOOP, LNCS 3086, pp. 465--490. Springer 2004.
8
 
9
 
10
11
12
 
13
14

CITED BY  11

Collaborative Colleagues:
Thomas A. Henzinger: colleagues
Ranjit Jhala: colleagues
Rupak Majumdar: colleagues