RMIT University
Browse

Using checker predicates in certifying code generation

conference contribution
posted on 2024-10-31, 17:18 authored by Jan Olaf Blech, Benjamin Grégoire
Certifying compilation is a way to guarantee the correctness of compiler runs. A certifying compiler generates for each run a proof that it has performed the compilation task correctly. The proof is checked in a separate theorem prover. If the theorem prover is content with the proof, one can be sure that the compiler produced correct code. Our notion of compilation correctness is based on a human readable formalization of simulation of systems to ensure the same observable behavior of programs. We focus on certifying code generation translating an intermediate language into assembler code. In previous work we found out that the time spent for checking the proofs is the bottleneck of certifying compilation. We introduced the concept of checker predicates. These are formalized in an executable way within a theorem prover to increase the speed of distinct sub tasks of certificate checking. Once the checker predicates are proved correct we are able to use them instead of traditional proving techniques within our theorem prover environment. In this paper, we present a more elaborate checker predicate for proving the simulation between intermediate and assembler programs correct. In the past this task has turned out to be the most complicated and time consuming task in certificate checking. Our checker predicate uses internally a specially formalized semantics representation of programs which is particularly suited for a fast conduction of proofs in the Coq theorem prover. Using this checker predicate we are able to speed up the task of certificate checking considerably.

History

Start page

1

End page

17

Total pages

17

Outlet

Proceedings of the 8th International Workshop on Compiler Optimization Meets Compiler Verification (COCV 2009)

Editors

Jens Knoop, Wolf Zimmermann

Name of conference

COCV 2009

Publisher

Association for Computing Machinery (ACM)

Place published

New York, United States

Start date

2009-03-22

End date

2009-03-22

Language

English

Copyright

© 2009 Association for Computing Machinery, Inc. (ACM)

Former Identifier

2006041496

Esploro creation date

2020-06-22

Fedora creation date

2013-07-22

Usage metrics

    Scholarly Works

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC