Abstract. Real life C programs are often written using C dialects which, for the ISO C standard, have undefined behaviours. In particular, ac-cording to the ISO C standard, reading an uninitialised variable has an undefined behaviour and low-level pointer operations are implementa-tion defined. We propose a formal semantics which gives a well-defined meaning to those behaviours for the C dialect of the CompCert compiler. Our semantics builds upon a novel memory model leveraging a notion of symbolic values. Symbolic values are used by the semantics to delay the evaluation of operations and are normalised lazily to genuine values when needed. We show that the most precise normalisation is computable and that a slightly relaxed normalisation c...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
International audienceWe discuss the difference between a formal semantics of the C standard, and a ...
International audienceReal life C programs are often written using C dialects which, for the ISO C s...
International audienceThe CompCert C compiler guarantees that the target program behaves as the sour...
International audienceSemantics preserving compilation of low-level C programs is challenging becaus...
International audienceThe CompCert C compiler provides the formal guarantee that the observable beha...
This thesis presents an extension of the CompCert compiler that aims at providing formal guarantees ...
The ISO C standard does not specify the semantics of many valid programs that use non-portable idiom...
A memory model is an important component of the formal semantics of imperative programming languages...
C remains central to our computing infrastructure. It is notionally defined by ISO standards, but in...
Abstract. We discuss the difference between a formal semantics of the C standard, and a formal seman...
The semantics of pointers and memory objects in C has been a vexed question for many years. C values...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
International audienceWe discuss the difference between a formal semantics of the C standard, and a ...
International audienceReal life C programs are often written using C dialects which, for the ISO C s...
International audienceThe CompCert C compiler guarantees that the target program behaves as the sour...
International audienceSemantics preserving compilation of low-level C programs is challenging becaus...
International audienceThe CompCert C compiler provides the formal guarantee that the observable beha...
This thesis presents an extension of the CompCert compiler that aims at providing formal guarantees ...
The ISO C standard does not specify the semantics of many valid programs that use non-portable idiom...
A memory model is an important component of the formal semantics of imperative programming languages...
C remains central to our computing infrastructure. It is notionally defined by ISO standards, but in...
Abstract. We discuss the difference between a formal semantics of the C standard, and a formal seman...
The semantics of pointers and memory objects in C has been a vexed question for many years. C values...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
International audienceWe discuss the difference between a formal semantics of the C standard, and a ...