ACM Home Page
Please provide us with feedback. Feedback
Mining specifications
Full text PdfPdf (306 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Portland, Oregon
Pages: 4 - 16  
Year of Publication: 2002
ISBN:1-58113-450-9
Also published in ...
Authors
Glenn Ammons  University of Wisconsin, Madison, Wisconsin
Rastislav Bodík  University of Wisconsin, Madison, Wisconsin
James R. Larus  Microsoft Research, One Microsoft Way, Redmond, Washington
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 20,   Downloads (12 Months): 166,   Citation Count: 81
Additional Information:

abstract   references   cited by   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/503272.503275
What is a DOI?

ABSTRACT

Program verification is a promising approach to improving program quality, because it can search all possible program executions for specific errors. However, the need to formally describe correct behavior or errors is a major barrier to the widespread adoption of program verification, since programmers historically have been reluctant to write formal specifications. Automating the process of formulating specifications would remove a barrier to program verification and enhance its practicality.This paper describes specification mining, a machine learning approach to discovering formal specifications of the protocols that code must obey when interacting with an application program interface or abstract data type. Starting from the assumption that a working program is well enough debugged to reveal strong hints of correct protocols, our tool infers a specification by observing program execution and concisely summarizing the frequent interaction patterns as state machines that capture both temporal and data dependences. These state machines can be examined by a programmer, to refine the specification and identify errors, and can be utilized by automatic verification tools, to find bugs.Our preliminary experience with the mining tool has been promising. We were able to learn specifications that not only captured the correct protocol, but also discovered serious bugs.


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
A. W. Biermann and J. A. Feldman. On the synthesis of finite-state machines from samples of their behaviour. IEEE Transactions on Computers, 21:591-597, 1972.
 
5
6
 
7
8
9
10
 
11
 
12
 
13
 
14
E Mark Gold. Language identification in the limit. Information and Control, 10:447-474, 1967.
 
15
16
17
 
18
19
 
20
Kevin P. Murphy. Passively learning finite automata. Technical Report 96-04-017, Santa Fe Institute, 1996.
 
21
Anand Raman, Peter Andreae, and Jon Patrick. A beam search algorithm for pfsa inference. Pattern Analysis and Applications, 1(2), 1998.
 
22
Anand V. Raman and Jon D. Patrick. The sk-strings method for inferring PFSA. In Proceedings of the workshop on automata induction, grammatical inference and language acquisition at the 14th international conference on machine learning (ICML97), 1997.
 
23
24
 
25
David Rosenthal. Inter-client communication conventions manual (ICCCM), version 2.0. X Consortium, Inc. and Sun Microsystems, 1994. Part of the X11R6 distribution.
26
 
27

CITED BY  81
Collaborative Colleagues:
Glenn Ammons: colleagues
Rastislav Bodík: colleagues
James R. Larus: colleagues