Certificate Translation for Optimizing Compilers [chapter]

Gilles Barthe, Benjamin Grégoire, César Kunz, Tamara Rezk
2006 Lecture Notes in Computer Science  
Proof Carrying Code provides trust in mobile code by requiring certificates that ensure the code adherence to specific conditions. The prominent approach to generate certificates for compiled code is Certifying Compilation, that automatically generates certificates for simple safety properties. In this work, we present Certificate Translation, a novel extension for standard compilers that automatically transforms formal proofs for more expressive and complex properties of the source program to
more » ... ertificates for the compiled code. The article outlines the principles of certificate translation, instantiated for a non optimizing compiler and for standard compiler optimizations in the context of an intermediate RTL Language. Certificate Translation: informal definition and setting The primary goal of certificate translation is to transform certificates of sourcelanguage programs into certificates of compiled programs. Given a compiler represented by the function · , a function · spec to transform specifications, and certificate checkers (expressed as a ternary relation "c is a certificate that P adheres to φ" and written c : P |= φ), a certificate translator is a function · cert such that for all programs p, policies φ, and certificates c, c : p |= φ =⇒ c cert : p |= φ spec ACM
doi:10.1007/11823230_20 fatcat:5jkwom4rpbddbb36r6yv6qufoy