Mechanized Semantics for the Clight Subset of the C Language
- First Online:
- Cite this article as:
- Blazy, S. & Leroy, X. J Autom Reasoning (2009) 43: 263. doi:10.1007/s10817-009-9148-3
This article presents the formal semantics of a large subset of the C language called Clight. Clight includes pointer arithmetic, struct and union types, C loops and structured switch statements. Clight is the source language of the CompCert verified compiler. The formal semantics of Clight is a big-step operational semantics that observes both terminating and diverging executions and produces traces of input/output events. The formal semantics of Clight is mechanized using the Coq proof assistant. In addition to the semantics of Clight, this article describes its integration in the CompCert verified compiler and several ways by which the semantics was validated.