Certifying code generation runs with Coq: a tool description
conference contribution
posted on 2024-10-31, 17:12authored byJan Olaf Blech, Benjamin Grégoire
In this tool description paper we present a certifying code generation phase. Our code generation phase takes intermediate language programs and translates them into MIPS assembler code. Each time our code generation is invoked a proof script is emitted. This proof script is used as a certificate to guarantee the correctness of the code generation run. It is checked in the Coq theorem prover. Once this has been successfully done we can be sure that the code generation has been carried out correctly. Checking the generated proof scripts has turned out to be a bottleneck of certifying compilation. This paper is based on an implementation which uses - among other techniques - checker predicates to overcome this bottleneck. These are predicates formalized in an executable way that can be easily evaluated by the Coq theorem prover to speed up the certificate checking process. This paper presents the certifying code generation phase introduced in [5] and focuses on its implementation.
History
Start page
1
End page
11
Total pages
11
Outlet
Proceedings of the 7th International Workshop on Compiler Optimization Meets Compiler Verification (COCV 2008)
Editors
Rolf Drechsler, Sabine Glesner, Jens Knoop, Wolf Zimmermann