5 ms·
I'm confused. The title made me think "list of compilers I can trust", but the website provides no such thing. It looks to me like they've written their own co
by click170 15y ago
I'm confused. The title made me think "list of compilers I can trust", but the website provides no such thing. It looks to me like they've written their own compiler.
- p4bl0 15y agoYes. CompCert is a project of the French research institute in computer science and automation (INRIA). The goal is to have a certified compiler for the C programming language. I believe they're writing a C compiler in Coq (a proof assistant also developped mainly at INRIA). The main guy behind CompCert is Xavier Leroy (already known for OCaml).
- MostAwesomeDude 15y agoYeah, the big thing here is that almost all of this thing is proven, meaning that the compiler's behavior is well-defined and correct, all the time, on all inputs. I still had a jaw-drop moment the first time I heard about this; Coq is not a pleasant language, and proving this thing must have been a nightmare.
- justincormack 15y agoWhat does it do about the undefined behaviour parts of the spec?
- beza1e1 15y agoThe frontend is not verified. This part parses, checks and lowers C code to a Clight. There is no formal specification of C itself and that would be the first step to verify the frontend.
- skew 15y agoYou can see the statement here: http://compcert.inria.fr/doc/html/Compiler.html#transf_c_program_correct http://compcert.inria.fr/doc/html/Compiler.html#transf_c_pro... A C compiler doesn't have to promise much of anything about the behavior of the code produced for a program with undefined behavior. This statement could be vacuous for a program p with undefined behavior if (Cstrategy.exec_program p beh) isn't true for any behavior beh, or only true for a behavior which makes (not_wrong beh) false. If they don't always, then they actually give you a guarantee for some bad programs as well. Nothing in the spec says running a bad program has to make demons fly out your nose.
- nakkiel 15y agoThere's a list of papers published on his page: http://cristal.inria.fr/~xleroy/ I keep this link in a feel-good folder, next to Bellard's page. Sometimes I need a feel-good break after reading US-centric news.
- jgmatpdx 15y agoIt is a list of formally verified C compilers. At the moment, there's one.