Abstract
In the paper, we propose an approach to an automatic extraction of verification models for the C language source code. We primarily focus on the representation of pointers and arrays, which make the extraction from the C language specific. We provide an implementation of the model extractor as a part of our broader effort to develop a verifier of Windows kernel drivers based on the Zing model checker. To demonstrate the feasibility of our approach, we give examples of the extraction results on a practical synchronization problem.
The work was partly supported by the project 1ET100300419 of the Program Information Society of the Thematic Program II of the National Research Program of the Czech Republic.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: A Model Checker for Concurrent Software. Technical Report, Microsoft Research (2004)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2000)
Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Pasareanu, C.S., Robby, Z.H.: Bandera: Extracting Finite-state Models from Java Source Code. In: Proceedings of the International Conference on Software Engineering, ICSE (2000)
Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in Property Specifications for Finite-State Verification. In: Proceedings of the 21st International Conference on Software Engineering, pp. 411–420 (1999)
Dwyer, M.B., Hatcliff, J.: Slicing Software for Model Construction. Journal of High-Order and Symbolic Computation (2000)
Hind, M.: Pointer Analysis: Haven’t We Solved this Problem Yet? In: 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE’01 (2001)
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Professional, Reading (2003)
ISO: C99 – The C Programming Language Standard (ISO/IEC 9899:1999)
Filliâtre, J.-C., Marché, C.: Multi-Prover Verification of C Programs. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 15–29. Springer, Heidelberg (2004)
Krinke, J.: Advanced Slicing of Sequential and Concurrent Programs. PhD Thesis, Fakultät Für Mathematik und Informatik, Universität Passau (2003)
Matousek, T.: Model of the Windows Driver Environment. Master Thesis at Department of Software Engineering, Charles University in Prague (2005), http://nenya.ms.mff.cuni.cz/publications/Matousek-thesis.pdf
McMillan, K.L.: Symbolic Model Checking – an Approach to the State Explosion Problem. PhD Thesis, SCS, Carnegie Mellon University (1992)
Microsoft: NET Framework, MSDN, http://msdn.microsoft.com/netframework
Microsoft: PREfast, http://www.microsoft.com/whdc/devtools/tools/PREfast.mspx
Microsoft: Static Driver Verifier – Finding Driver Bugs at Compile-Time, WHDC, http://www.microsoft.com/whdc/devtools/tools/sdv.mspx
Microsoft: Windows Driver Foundation, WHDC, http://www.microsoft.com/whdc/driver/wdf/default.mspx
Microsoft Research: SLAM Project, http://research.microsoft.com/slam
Microsoft Research: Zing Model Checker, http://research.microsoft.com/zing
NASA Intelligent Systems Division: Java Path Finder, http://ase.arc.nasa.gov/havelund/jpf.html
Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate Language and tools for Analysis and Transformation of C Programs. In: Horspool, R.N. (ed.) CC 2002 and ETAPS 2002. LNCS, vol. 2304, pp. 209–265. Springer, Heidelberg (2002)
Necula, G.C., McPeak, S., Weimer, W., Harren, M., Condit, J.: CCured, http://manju.cs.berkeley.edu/ccured
Perens, B.: ElecticFence, http://perens.com/FreeSoftware/ElectricFence
Robby, Dwyer, M.B., Hatcliff, J.: Bogor: An Extensible and Highly Modular Software Model Checking Framework. SIGSOFT Softw. Eng. Notes 28(5), 267–276 (2003)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Matousek, T., Zavoral, F. (2007). Extracting Zing Models from C Source Code. In: van Leeuwen, J., Italiano, G.F., van der Hoek, W., Meinel, C., Sack, H., Plášil, F. (eds) SOFSEM 2007: Theory and Practice of Computer Science. SOFSEM 2007. Lecture Notes in Computer Science, vol 4362. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69507-3_78
Download citation
DOI: https://doi.org/10.1007/978-3-540-69507-3_78
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69506-6
Online ISBN: 978-3-540-69507-3
eBook Packages: Computer ScienceComputer Science (R0)