• DocumentCode
    1579037
  • Title

    Verification of C Programs Using Automated Reasoning

  • Author

    Crocker, David ; Carlton, Judith

  • Author_Institution
    Escher Technol. Ltd., Aldershot
  • fYear
    2007
  • Firstpage
    7
  • Lastpage
    14
  • Abstract
    Much of the embedded software development market has necessarily tight constraints on program size and processor power, hence developers use handwritten C rather than autocode. They rely primarily on testing to find errors in their code. We have an established software development tool known commercially as Perfect Developer, which uses a powerful automatic theorem prover and inference engine to reason about requirements and specifications. We have found that automated reasoning can be used to discharge a very high proportion of verification conditions arising from the specification and refinement of software components described in our formal specification language, Perfect. The Perfect Developer tool set can also generate code in a C++ subset or in Java, and the output code is then virtually certain to meet the stated specification, reducing the need for exhaustive testing. However, this is not helpful to developers of embedded software who are constrained to write code by hand. We therefore decided to investigate whether automated reasoning could provide a similar degree of success in the verification of annotated C code. We present our preliminary findings.
  • Keywords
    C language; formal specification; inference mechanisms; program testing; reasoning about programs; software tools; specification languages; theorem proving; C program verification; C++ subset; Java; Perfect Developer; automated reasoning; automatic theorem prover; embedded software development market; formal specification language; handwritten C; inference engine; processor power; program size; requirement reasoning; software development tool; software testing; specifications reasoning; verification conditions; Application software; Buffer overflow; Computer languages; Embedded software; Formal specifications; Java; Programming; Runtime; Software safety; Vehicle crash testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering and Formal Methods, 2007. SEFM 2007. Fifth IEEE International Conference on
  • Conference_Location
    London
  • Print_ISBN
    978-0-7695-2884-7
  • Type

    conf

  • DOI
    10.1109/SEFM.2007.44
  • Filename
    4343919