Formal verification of translation validators

Abstract : As any piece of software, compilers, and especially optimizing compilers, can be faulty. It is therefore possible that the semantics of a program is changed by the compilation, along with its properties. In the context of critical software, where formal methods are used to ensure that a program satisfies some properties, possibly before it is compiled, this presents a problem. A solution to this problem is to verify the compiler itself by ensuring that it preserves the semantics of the programs being compiled. In this thesis, we evaluate a new method for building verified compiler passes, the formal verification of translation validators. On the one hand, this method uses formal verification based on proof-assistant in order to offer the best safety guarantees on the compiler. On the other hand, it relies on the use of translation validation, where each execution of the compiler is verified a posteriori, a more pragmatic verification method which allows for the verification of advanced optimizations. We show that this novel approach to the problem of verifying compilers is viable, and even advantageous in some cases, through four examples of optimizations that are both realistic and aggressive: list scheduling, trace scheduling, lazy code motion and software pipelining.
Document type :
Theses
Software Engineering [cs.SE]. Université Paris-Diderot - Paris VII, 2009. French


https://tel.archives-ouvertes.fr/tel-00437582
Contributor : Jean-Baptiste Tristan <>
Submitted on : Monday, November 30, 2009 - 11:39:25 PM
Last modification on : Friday, December 18, 2009 - 12:43:26 PM

Identifiers

  • HAL Id : tel-00437582, version 1

Collections

Citation

Jean-Baptiste Tristan. Formal verification of translation validators. Software Engineering [cs.SE]. Université Paris-Diderot - Paris VII, 2009. French. <tel-00437582>

Export

Share

Metrics

Consultation de
la notice

415

Téléchargement du document

186