Skip to main content

A Lesson on Proof of Programs with Frama-C. Invited Tutorial Paper

  • Conference paper
Book cover Tests and Proofs (TAP 2013)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7942))

Included in the following conference series:

Abstract

To help formal verification tools to make their way into industry, they ought to be more widely used in software engineering classes. This tutorial paper serves this purpose and provides a lesson on formal specification and proof of programs with Frama-C, an open-source platform dedicated to analysis of C programs, and acsl, a specification language for C.

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 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
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. Randimbivololona, F., Souyris, J., Baudin, P., Pacalet, A., Raguideau, J., Schoen, D.: Applying Formal Proof Techniques to Avionics Software: A Pragmatic Approach. In: Wing, J.M., Woodcock, J., Davies, J. (eds.) FM 1999. LNCS, vol. 1709, pp. 1798–1815. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  2. Delmas, D., Duprat, S., Baudin, P., Monate, B.: Proving temporal properties at code level for basic operators of control/command programs. In: 4th European Congress on Embedded Real Time Software (2008)

    Google Scholar 

  3. Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580, 583 (1969)

    Article  MATH  Google Scholar 

  4. Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Communications of the ACM 18(8), 453–457 (1975)

    Article  MathSciNet  MATH  Google Scholar 

  5. Correnson, L., Cuoq, P., Kirchner, F., Prevosto, V., Puccetti, A., Signoles, J., Yakobowski, B.: Frama-C User Manual (October 2011), http://frama-c.com

  6. Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C, a program analysis perspective. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 233–247. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  7. Moy, Y.: Automatic Modular Static Safety Checking for C Programs. PhD thesis, University Paris 11 (January 2009)

    Google Scholar 

  8. Moy, Y., Marché, C.: Jessie Plugin Tutorial

    Google Scholar 

  9. Correnson, L., Dargaye, Z.: WP Plug-in Manual, version 0.5 (January 2012)

    Google Scholar 

  10. Baudin, P., Filliâtre, J.C., Hubert, T., Marché, C., Monate, B., Moy, Y., Prevosto, V.: ACSL: ANSI/ISO C Specification Language (February 2011)

    Google Scholar 

  11. Correnson, L., Signoles, J.: Combining Analyses for C Program Verification. In: Stoelinga, M., Pinger, R. (eds.) FMICS 2012. LNCS, vol. 7437, pp. 108–130. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  12. Feinerer, I., Salzer, G.: A comparison of tools for teaching formal software verification. Formal Aspects of Computing 21(3) (2009)

    Google Scholar 

  13. KeY Project: Uses of KeY for teaching, http://www.key-project.org/teaching/

  14. Frama-C: Uses of Frama-C for teaching, http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:teaching

  15. Burghardt, J., Gerlach, J., Hartig, K., Pohl, H., Soto, J.: ACSL by Example. A fairly complete tour of ACSL features through various functions inspired from C++ STL. Version 7.1.0 (for Frama-C Nitrogen)

    Google Scholar 

  16. Almeida, J.C.B., Frade, M.J., Pinto, J.S., de Sousa, S.M.: Rigorous Software Development, An Introduction to Program Verification. Undergraduate Topics in Computer Science. Springer (2011)

    Google Scholar 

  17. Quan, T., Nguyen, P., Bui, T., Le, T., Nguyen, A., Hoang, D., Nguyen, V., Nguyen, B.: iiOSProTrain: An Interactive Intelligent Online System for Programming Training. Journal of Advances in Information Technology 3(1) (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kosmatov, N., Prevosto, V., Signoles, J. (2013). A Lesson on Proof of Programs with Frama-C. Invited Tutorial Paper. In: Veanes, M., Viganò, L. (eds) Tests and Proofs. TAP 2013. Lecture Notes in Computer Science, vol 7942. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38916-0_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-38916-0_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-38915-3

  • Online ISBN: 978-3-642-38916-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics