• DocumentCode
    2129247
  • Title

    Automatic verification of object code against source code

  • Author

    Subramanian, Sakthi ; Cook, Jeffrey V.

  • Author_Institution
    Trusted Inf. Syst. Inc., Mountain View, CA, USA
  • fYear
    1996
  • fDate
    17-21 Jun 1996
  • Firstpage
    46
  • Lastpage
    55
  • Abstract
    An important step when applying formal methods to gain assurance of trusted systems is the verification of object code against source code. One way to mechanically verify that the object code faithfully implements the source code from which it is compiled is to verify the compiler. However, verifying the implementation of an industrial-strength compiler is a very difficult technical problem at the present time. For small fragments of code, it may be easier to verify the equivalence of the source and object code by reasoning about their behavior directly without dealing with the algorithm used for translation. In this paper, we describe a system for automatically verifying MC68020 object code against C source code. The semantics of a small subset of C and MC68020 object code are formalized in the logic of Nqthm (a.k.a. the Boyer-Moore theorem prover). After a large collection of lemmas about C and MC68020 semantics are made available, Nqthm is able to prove the correctness theorems automatically for a small class of programs. For practical use of the system to be possible, we wrote a front-end to Nqthm that generates correctness theorems, given the C source file as input. Using our front-end, we tested our system by verifying the object code produced by the GCC and CC compilers for some small programs
  • Keywords
    C language; formal logic; program compilers; program verification; theorem proving; Boyer-Moore theorem prover; C source code; CC compiler; GCC compiler; MC68020 object code; Nqthm logic; automatic verification; code fragments; compiler verification; correctness theorems; formal methods; front-end; semantics; trusted systems assurance; Contracts; Information systems; Logic; Procurement; Program processors; Programming profession; Security; System testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Assurance, 1996. COMPASS '96, Systems Integrity. Software Safety. Process Security. Proceedings of the Eleventh Annual Conference on
  • Conference_Location
    Gaithersburg, MD
  • Print_ISBN
    0-7803-3390-X
  • Type

    conf

  • DOI
    10.1109/CMPASS.1996.507874
  • Filename
    507874