Skip to main content

Formalising C and C++ for Use in High Integrity Systems

  • Conference paper
The Safety of Systems
  • 557 Accesses

Abstract

UK MoD has long been an advocate of the use of mathematically formal verification in software for safety critical applications. In the past this has been focused on the SPARK Ada subset, but it is increasingly becoming difficult to find suppliers willing or capable of delivering Ada programs. Instead, there is a pressure to use more commercially attractive languages, such as C and C++. In order to maintain the high levels of confidence necessary for critical applications, this means being able to formally reason about these ‘new’ languages.

This paper covers two related programmes that are developing formal semantics for restricted subsets of C and C++ respectively. It will also consider how the formal semantics will be exploited in a verification environment.

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.

5 References

  • Barnes J (1997). High Integrity Ada: The SPARK Approach, Addison-Wesley, 1997. ISBN 0-201-17517-7.

    Google Scholar 

  • C++ (2003). ISO/IEC 14882:2003(E), Programming Languages — C++ Language Standard, ISO, 1998.

    Google Scholar 

  • Carré B, O’Halloran C, and Sennett C T (1993). Final Report on Work to Define a Formal Semantics for SPARK, DRA customer report, 1993.

    Google Scholar 

  • Garnsworthy J, O’Neill I, and Carré B (1993). Automatic Proof of the Absence of Run-Time Errors. In: Ada: Towards Maturity — Proceedings of the 1993 AdaUK conference, IOS Press, 1993. ISBN 9051991428.

    Google Scholar 

  • Hatton L (1994). Safer C, McGraw-Hill, 1994. ISBN 0-07-707640-0.

    Google Scholar 

  • HICPP (2004). High-Integrity C++ Coding Standard Manual v2.2, The Programming Research Group, May 2004. Available from: http://www.codingstandard.com/HICPP_MANUAL_REQUEST.htm

    Google Scholar 

  • JSF (2005). Joint Strike Fighter Air Vehicle C++ Coding Standards for the System Development and Demonstration Program, Document Number 2RDU00001 Rev C, December 2005. Available from: http://www.jsf.mil/downloads/downdocumentation.htm

    Google Scholar 

  • Koenig A (1989). C Traps and Pitfalls, Addison-Wesley, 1989. ISBN 0-201-17928-8

    Google Scholar 

  • March M, Smith A, and Whiting E (2003). Concrete and Abstract Syntaxes for Restricted C, QinetiQ internal report, Version 2, July 2003.

    Google Scholar 

  • MISRA (2004). MISRA C: Guidelines for the Use of the C Language in Critical Systems, Motor Industry Research Association, 2004. ISBN 0-9524156-2-3.

    Google Scholar 

  • NATO (2005). EJ200, Digital Electronic Control and Monitoring Unit (DECMU) Software Programmer’s Manual for C, EJ 494/12000 Issue 1E, NATO UNCLASSIFIED, Date of Issue: 08-AUG-05.

    Google Scholar 

  • Norrish M (1998). C Formalised in HOL, PhD thesis, Cambridge University, 1998.

    Google Scholar 

  • Reynolds J C (2002). Separation Logic: a Logic for Shared Mutable Data Structures. Invited Paper, Proceedings of the 17th IEEE Symposium on Logic in Computer Science, 2002; 55–74.

    Google Scholar 

  • Schofield A, and Pygott C (2006). A Tabulation of the Unpredictable Features of the C++ Language, QinetiQ Report QINETIQ/S&DU/TIM/CR060019, September 2006.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag London Limited

About this paper

Cite this paper

O’Halloran, C.M., Pygott, C.H. (2007). Formalising C and C++ for Use in High Integrity Systems. In: Redmill, F., Anderson, T. (eds) The Safety of Systems. Springer, London. https://doi.org/10.1007/978-1-84628-806-7_15

Download citation

  • DOI: https://doi.org/10.1007/978-1-84628-806-7_15

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-84628-805-0

  • Online ISBN: 978-1-84628-806-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics