This paper is about verifying program transformations on an axiomatic relaxed memory model of the kind used in C/C++ and Java. Relaxed models present particular challenges for verifying program transformations, because they generate many additional modes of interaction between code and context. For a block of code being transformed, we define a denotation from its behaviour in a set of representative contexts. Our denotation summarises interactions of the code block with the rest of the program both through local and global variables, and through subtle synchronisation effects due to relaxed memory. We can then prove that a transformation does not introduce new program behaviours by comparing the denotations of the code block befor...
Model-checking tools classicaly verify concurrent programs under the traditional Sequential Consiste...
A memory consistency model (MCM) is the part of a programming language or computer architecture spec...
We present a transformational approach to program verification and software model checking that uses...
Abstract. We present a new abstract interpretation based approach for automat-ically verifying concu...
We consider the verified compilation of high-level managed languages like Java or C # whose intermed...
Compilers transform programs, either to optimize performance or to translate language-level construc...
International audienceWe consider the verified compilation of high-level managed languages like Java...
International audienceThis article presents the formal verification, using the Coq proof assistant, ...
Approximate program transformations such as task skipping [27, 28], loop perforation [20, 21, 32], m...
While program correctness for compiled languages depends fundamentally on compiler correctness, comp...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
A number of approximate program transformations have recently emerged that enable transformed progra...
Verifying program transformations usually requires proving that the resulting program (the target) r...
The work covered in this thesis concerns automatic analysis of correctness of parallel programs runn...
Model-checking tools classicaly verify concurrent programs under the traditional Sequential Consiste...
A memory consistency model (MCM) is the part of a programming language or computer architecture spec...
We present a transformational approach to program verification and software model checking that uses...
Abstract. We present a new abstract interpretation based approach for automat-ically verifying concu...
We consider the verified compilation of high-level managed languages like Java or C # whose intermed...
Compilers transform programs, either to optimize performance or to translate language-level construc...
International audienceWe consider the verified compilation of high-level managed languages like Java...
International audienceThis article presents the formal verification, using the Coq proof assistant, ...
Approximate program transformations such as task skipping [27, 28], loop perforation [20, 21, 32], m...
While program correctness for compiled languages depends fundamentally on compiler correctness, comp...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
A number of approximate program transformations have recently emerged that enable transformed progra...
Verifying program transformations usually requires proving that the resulting program (the target) r...
The work covered in this thesis concerns automatic analysis of correctness of parallel programs runn...
Model-checking tools classicaly verify concurrent programs under the traditional Sequential Consiste...
A memory consistency model (MCM) is the part of a programming language or computer architecture spec...
We present a transformational approach to program verification and software model checking that uses...