2022
DOI: 10.1007/978-3-030-99336-8_8
|View full text |Cite
|
Sign up to set email alerts
|

The Trusted Computing Base of the CompCert Verified Compiler

Abstract: is the first realistic formally verified compiler: it provides a machine-checked mathematical proof that the code it generates matches the source code. Yet, there could be loopholes in this approach. We comprehensively analyze aspects of where errors could lead to incorrect code being generated. Possible issues range from the modeling of the source and the target languages to some techniques used to call external algorithms from within the compiler.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
10
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
4
1

Relationship

2
3

Authors

Journals

citations
Cited by 6 publications
(10 citation statements)
references
References 45 publications
(81 reference statements)
0
10
0
Order By: Relevance
“…Furthermore, some instructions present in CompCert's "assembly" languages are actually macros expanded by trusted (unverified) OCaml code. Some of these macros were inexactly specified, for instance by forgetting a clobbered register-this went unnoticed as long as the compiler did not take advantage of the value in that register being preserved [13]. (6) Assembly language mis-expansion or misprinting: we also found rare miscompilations in the expansion or printing of macros-instructions.…”
Section: Introductionmentioning
confidence: 90%
“…Furthermore, some instructions present in CompCert's "assembly" languages are actually macros expanded by trusted (unverified) OCaml code. Some of these macros were inexactly specified, for instance by forgetting a clobbered register-this went unnoticed as long as the compiler did not take advantage of the value in that register being preserved [13]. (6) Assembly language mis-expansion or misprinting: we also found rare miscompilations in the expansion or printing of macros-instructions.…”
Section: Introductionmentioning
confidence: 90%
“…3 This proof of correctness, verified by the Coq proof assistant, ensures that the behavior of the assembly code produced by the compiler matches the behavior of the source code. Possibilities for code generation bugs in CompCert are extremely limited, and are typically found in unverified parts of the system such as the passes that prints assembly code [14]. In particular, CompCert does not have the middleend bugs usually found in compilers [21], notably in optimization passes.…”
Section: Compcertmentioning
confidence: 99%
“…5 This complicates implementation and limits efficiency. A workaround is to call OCaml code from Coq, but in doing so one must not increase the trusted computing base, or at most by a very small and controlled amount [14].…”
Section: Compcertmentioning
confidence: 99%
See 2 more Smart Citations