Also worth reading: the paper that found bugs in the proven-correct compiler: <a href="http://www.cs.utah.edu/~regehr/papers/pldi11-preprint.pdf" rel="nofollow">http://www.cs.utah.edu/~regehr/papers/pldi11-preprint.pdf</a><p>(okay, so only a portion of the compiler is proven correct, and they didn't find any bugs in that portion).<p>Note also that a compiler with a proof isn't necessarily correct - it just means that you've pushed all your bugs into your description of the rules of C and of the target architecture. Since neither C nor any common CPU architecture have a formal semantics, someone has to read the (english) description and convert it to a description in their theorem proving software, and there's no reason to believe this will be easy.