Provably Correct Compiler Development and Implementation

This paper reports on provably correct compiler implementation in the ESPRIT basic research action 3104 ProCoS (Provably Correct Systems). A sharp distinction is drawn between correctness of the specification of a compiler and correctness of the actual implementation. The first covers semantical correctness of the code to be generated, whereas the second concerns correctness of the compiler program with respect to the specification. The compiler construction framework presented aims at minimizing the amount of handcoding during implementation and at reusing specification correctness arguments for proving the implementation correct. The classical technique of bootstrapping compilers is revisited with respect to implementation correctness.

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

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

[3]  Inmos Limited,et al.  OCCAM 2 reference manual , 1988 .

[4]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[5]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[6]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[7]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.