| A simple method for extracting models for protocol code |
| Full text |
Pdf
(923 KB)
|
| Source
|
International Symposium on Computer Architecture
archive
Proceedings of the 28th annual international symposium on Computer architecture
table of contents
Göteborg, Sweden
Pages: 192 - 203
Year of Publication: 2001
ISBN:0-7695-1162-7
Also published in ...
|
|
Authors
|
|
David Lie
|
Computer Systems Laboratory, Stanford University, Stanford, CA
|
|
Andy Chou
|
Computer Systems Laboratory, Stanford University, Stanford, CA
|
|
Dawson Engler
|
Computer Systems Laboratory, Stanford University, Stanford, CA
|
|
David L. Dill
|
Computer Systems Laboratory, Stanford University, Stanford, CA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 5, Downloads (12 Months): 31, Citation Count: 8
|
|
|
ABSTRACT
The use of model checking for validation requires that models of the underlying system be created. Creating such models is both difficult and error prone and as a result, verification is rarely used despite its advantages. In this paper, we present a method for automatically extracting models from low level software implementations. Our method is based on the use of an extensible compiler system, xg++, to perform the extraction. The extracted model is combined with a model of the hardware, a description of correctness, and an initial state. The whole model is then checked with the Murϕ model checker. As a case study, we apply our method to the cache coherence protocols of the Stanford FLASH multiprocessor. Our system has a number of advantages. First, it reduces the cost of creating models, which allows model checking to be used more frequently. Second, it increases the effectiveness of model checking since the automatically extracted models are more accurate and faithful to the underlying implementation. We found a total of 8 errors using our system. Two errors were global resource errors, which would be difficult to find through any other means. We feel the approach is applicable to other low level systems.
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
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
2
|
|
| |
3
|
T. Ball and S. K. Rajamani. Checking temporal properties of software with boolean programs. In Proc. of the Workshop on Advances in Verification (with CAV 2000), 2000.
|
| |
4
|
|
| |
5
|
S. Chiba. Open C++ programmer's guide. Technical Report TR93-93-3, Dept. of information science, University of Tokyo, 1993.
|
 |
6
|
Shigeru Chiba, A metaobject protocol for C++, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.285-299, October 15-19, 1995, Austin, Texas, United States
|
 |
7
|
Andy Chou , Benjamin Chelf , Dawson Engler , Mark Heinrich, Using meta-level compilation to check FLASH protocol code, Proceedings of the ninth international conference on Architectural support for programming languages and operating systems, p.59-70, November 2000, Cambridge, Massachusetts, United States
|
 |
8
|
James C. Corbett , Matthew B. Dwyer , John Hatcliff , Shawn Laubach , Corina S. Păsăreanu , Robby , Hongjun Zheng, Bandera: extracting finite-state models from Java source code, Proceedings of the 22nd international conference on Software engineering, p.439-448, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/337180.337234]
|
| |
9
|
R. E Crew. ASTLOG: A language for examining abstract syntax trees. In Proc. of the First Conf. on Domain Specific Languages, pages 229-242, Oct. 1997.
|
| |
10
|
D. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In Proc. of the 4th Symp. on Operating Systems Design and Implementation (OSDI 2000), pages 23- 25, Sept. 2000.
|
| |
11
|
|
 |
12
|
|
| |
13
|
|
| |
14
|
|
 |
15
|
J. Kuskin , D. Ofelt , M. Heinrich , J. Heinlein , R. Simoni , K. Gharachorloo , J. Chapin , D. Nakahira , J. Baxter , M. Horowitz , A. Gupta , M. Rosenblum , J. Hennessy, The Stanford FLASH multiprocessor, Proceedings of the 21ST annual international symposium on Computer architecture, p.302-313, April 18-21, 1994, Chicago, Illinois, United States
|
| |
16
|
T. Lord. Application specific static code checking for C programs: Ctool. In -twaddle: A Digital Zine (version 1.0), 1997.
|
| |
17
|
K. McMillan and J. Schwalbe. Formal verification of the gigamax cache consistency protocol. In Proc. of the Intl. Syrup. on Shared Memory Multiprocessing ( ISSMM91), pages 242-251. Tokyo, Japan Inf. Process. Soc., 1991.
|
| |
18
|
G. Nelson. Techniques f or program verification. Available as Xerox PARC Research Report CSL-81-10, June, 1981, Stanford University, 1981.
|
 |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
E Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3): 121-189, September 1995.
|
| |
23
|
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352-357, July 1984.
|
CITED BY 8
|
|
|
|
|
|
|
|
|
|
|
R. Sekar , V.N. Venkatakrishnan , Samik Basu , Sandeep Bhatkar , Daniel C. DuVarney, Model-carrying code: a practical approach for safe execution of untrusted applications, Proceedings of the nineteenth ACM symposium on Operating systems principles, October 19-22, 2003, Bolton Landing, NY, USA
|
|
|
|
|
|
Lin Tan , Xiaolan Zhang , Xiao Ma , Weiwei Xiong , Yuanyuan Zhou, AutoISES: automatically inferring security specifications and detecting violations, Proceedings of the 17th conference on Security symposium, p.379-394, July 28-August 01, 2008, San Jose, CA
|
|
|
|
|
|
|
|