The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Formal Verification of a Java Compiler in Isabelle
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Structuring Optimizing Transformations and Proving Them Sound
Electronic Notes in Theoretical Computer Science (ENTCS)
Proof-transforming compilation of programs with abrupt termination
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
A Certifying Code Generation Phase
Electronic Notes in Theoretical Computer Science (ENTCS)
Translation validation of system abstractions
RV'07 Proceedings of the 7th international conference on Runtime verification
Certifying compilers using higher-order theorem provers as certificate checkers
Formal Methods in System Design
On the correctness of transformations in compiler back-ends
ISoLA'04 Proceedings of the First international conference on Leveraging Applications of Formal Methods
Hi-index | 0.00 |
Correctness of compilation is important for the reliability of software. New techniques to guarantee correctness do not verify the compiler itself, but check for each compiled program whether it is correctly translated. Following these ideas, we developed an approach in which checking is realized as proof checking within a formal specification and verification framework. Based on formal specifications of source and target language and a translation predicate, compilers produce, in addition to the target program c, a proof that c is correct w.r.t. its source program. This proof can be checked independently of the compiler by the framework. Thus, it can be used as a translation certificate. The paper describes the overall approach and applies it to a simple translation scenario. Specification and verification is done within the theorem prover Isabelle/HOL. To show the flexibility of the approach, we present two different proof techniques for translation correctness.