Michael J. Sullivan Low-level Concurrent Programming Using the Relaxed Memory Calculus Degree Type: Ph.D. in Computer Science Advisor(s): Karl Crary Graduated: December 2017 Abstract: The Relaxed Memory Calculus (RMC) is a novel approach for portable low level concurrent programming in the presence of the the relaxed memory behavior caused by modern hardware architectures and optimizing compilers. RMC takes a declarative approach to programming with relaxed memory: programmers explicitly specify constraints on execution order and on the visibility of writes. This differs from other low-level programming language memory models, which–when they exist–are usually based on ordering annotations attached to synchronization operations and/or explicit memory barriers. In this thesis, we argue that this declarative approach based on explicit programmer-specified constraints is a practical approach for implementing low-level concurrent algorithms. To this end, we present RMC-C++, an extension of C++ with RMC constraints, and rmc-compiler, an LLVM based compiler for i Thesis Committee: Karl Crary (Chair) Kayvon Fatahalian Todd Mowry Paul McKenney (IBM) Frank Pfenning, Head, Computer Science Department Andrew W. Moore, Dean, School of Computer Science Keywords: Programming languages, compilers, concurrency, memory models, relaxed memory CMU-CS-17-126.pdf (998.56 KB) ( 172 pages) Copyright Notice