We analyse the validity of common optimisations on multi-threaded programs in two memory models—the DRF guarantee and the Java Memory Model. Unlike in the single-threaded world, even simple program transformations, such as common subexpression elimination, can introduce new behaviours in shared-memory multi-threading with an interleaved semantics. To validate such optimisations, most current programming languages define weaker semantics, called memory models, that aim to allow such transformations while providing reasonable guarantees. In this thesis, we consider common program transformations and analyse their safety in the two most widely used language memory models: (i) the DRF guarantee, which promises sequentially consistent behaviours...
Instructions, as they appear in a program’s text, dictate the behavior of singlethreaded programs. U...
We describe an alternative memory semantics for Java programs using an enriched version of the Commi...
Previous studies on safety of program transformations with respect to performance considered two cri...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Many hardware and compiler optimisations introduced to speed up single-threaded programs also introd...
It has been observed in previous work that it is desirable to avoid causal violations in any executi...
Java has integrated multithreading to a far greater extent than most programming languages. It is ...
A memory model for a concurrent imperative programming lan-guage specifies which writes to shared va...
Compilers transform programs, either to optimize performance or to translate language-level construc...
In this paper, we establish a notion of causality that should be used as a desideratum for memory mo...
A memory model for a concurrent imperative programming language specifies which writes to shared var...
Safe languages provide programming abstractions, like type and memory safety, to improve programmer ...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
We present a machine-checked formalisation of the Java memory model and connect it to an operational...
Instructions, as they appear in a program’s text, dictate the behavior of singlethreaded programs. U...
We describe an alternative memory semantics for Java programs using an enriched version of the Commi...
Previous studies on safety of program transformations with respect to performance considered two cri...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Many hardware and compiler optimisations introduced to speed up single-threaded programs also introd...
It has been observed in previous work that it is desirable to avoid causal violations in any executi...
Java has integrated multithreading to a far greater extent than most programming languages. It is ...
A memory model for a concurrent imperative programming lan-guage specifies which writes to shared va...
Compilers transform programs, either to optimize performance or to translate language-level construc...
In this paper, we establish a notion of causality that should be used as a desideratum for memory mo...
A memory model for a concurrent imperative programming language specifies which writes to shared var...
Safe languages provide programming abstractions, like type and memory safety, to improve programmer ...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
We present a machine-checked formalisation of the Java memory model and connect it to an operational...
Instructions, as they appear in a program’s text, dictate the behavior of singlethreaded programs. U...
We describe an alternative memory semantics for Java programs using an enriched version of the Commi...
Previous studies on safety of program transformations with respect to performance considered two cri...