Skip to main content

Extracting Zing Models from C Source Code

  • Conference paper
SOFSEM 2007: Theory and Practice of Computer Science (SOFSEM 2007)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4362))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: A Model Checker for Concurrent Software. Technical Report, Microsoft Research (2004)

    Google Scholar 

  2. Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2000)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Dwyer, M.B., Hatcliff, J.: Slicing Software for Model Construction. Journal of High-Order and Symbolic Computation (2000)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Professional, Reading (2003)

    Google Scholar 

  8. ISO: C99 – The C Programming Language Standard (ISO/IEC 9899:1999)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Krinke, J.: Advanced Slicing of Sequential and Concurrent Programs. PhD Thesis, Fakultät Für Mathematik und Informatik, Universität Passau (2003)

    Google Scholar 

  11. 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

  12. McMillan, K.L.: Symbolic Model Checking – an Approach to the State Explosion Problem. PhD Thesis, SCS, Carnegie Mellon University (1992)

    Google Scholar 

  13. Microsoft: NET Framework, MSDN, http://msdn.microsoft.com/netframework

  14. Microsoft: PREfast, http://www.microsoft.com/whdc/devtools/tools/PREfast.mspx

  15. Microsoft: Static Driver Verifier – Finding Driver Bugs at Compile-Time, WHDC, http://www.microsoft.com/whdc/devtools/tools/sdv.mspx

  16. Microsoft: Windows Driver Foundation, WHDC, http://www.microsoft.com/whdc/driver/wdf/default.mspx

  17. Microsoft Research: SLAM Project, http://research.microsoft.com/slam

  18. Microsoft Research: Zing Model Checker, http://research.microsoft.com/zing

  19. NASA Intelligent Systems Division: Java Path Finder, http://ase.arc.nasa.gov/havelund/jpf.html

  20. 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)

    Chapter  Google Scholar 

  21. Necula, G.C., McPeak, S., Weimer, W., Harren, M., Condit, J.: CCured, http://manju.cs.berkeley.edu/ccured

  22. Perens, B.: ElecticFence, http://perens.com/FreeSoftware/ElectricFence

  23. 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)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan van Leeuwen Giuseppe F. Italiano Wiebe van der Hoek Christoph Meinel Harald Sack František Plášil

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics