arXiv · 2605.26527
A Formal Semantics of C with OpenMP Parallelism (Extended Version)
Abstract
OpenMP is a popular parallelization framework that lets users transform sequential code into parallel code with a few simple annotations. Unfortunately, it is also easy to inadvertently introduce errors by adding OpenMP pragmas into otherwise correct programs, including both logic errors and race conditions. We present a formal semantics for C code with OpenMP directives, building on the C semantics of the CompCert verified compiler and its extension to concurrency. Our semantics captures subtle interactions between OpenMP directives and variable state that have been obscured by previous OpenMP semantics, and provides a basis for detecting undesired behaviors introduced by incorrect annotations: in particular, any successful execution is guaranteed to be free of data races.
Explore related subjects
Keep this discovery
Ke Du, Anshu Sharma, Liyi Li, William Mansky. 2026-05-26. A Formal Semantics of C with OpenMP Parallelism (Extended Version). https://arxiv.org/abs/2605.26527
Cite the original work for its findings. Save a collection to share your selection of sources.