Compiler Correctness and Input/Output

We describe the formal machine-checked verification of a compiler from a subset of the Vista structured assembly language to the flat assembly language Visa. In particular, we describe the problems associated with input and output commands. We present an oracle based model of I/O. We show how this model can be incorporated into both the relational semantics of Vista and the interpreter semantics of Visa. We illustrate how the compiler correctness theorem proved is sufficient to deduce correctness properties of compiled code from properties of the original program.

[1]  Wolfgang Polak,et al.  Compiler Specification and Verification , 1981 .

[2]  John McCarthy,et al.  Correctness of a compiler for arithmetic expressions , 1966 .

[3]  Avra Cohn,et al.  A Proof of Correctness of the Viper Microprocessor: The First Level , 1988 .

[4]  Paul Curzon Deriving correctness properties of compiled code , 1992, TPHOLs.

[5]  W. J. Cullyer Implementing Safety-Critical Systems: The VIPER Microprocessor , 1988 .

[6]  Jeffrey J. Joyce Generic Specification of Digital Hardware , 1991 .

[7]  Tom Melham,et al.  Abstraction Mechanisms for Hardware Verification , 1988 .

[8]  Michael J. C. Gordon,et al.  Mechanizing programming logics in higher order logic , 1989 .

[9]  Avra Cohn Correctness properties of the Viper block model: the second level , 1989 .

[10]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[11]  Warren A. Hunt,et al.  Toward Verified Execution Environments , 1987, 1987 IEEE Symposium on Security and Privacy.

[12]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[13]  Paul Curzon A Verified Compiler For A Structured Assembly Language , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[14]  Joëlle Despeyroux,et al.  Proof of Translation in Natural Semantics , 1986, LICS.

[15]  David F. Martin,et al.  Case Studies In Compiler Correctness Using HOL , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[16]  Paul Curzon A Programming Logic for a Verified Structured Assembly Language , 1992, LPAR.