The leaky semicolon: Compositional semantic dependencies for relaxed-memory concurrency

9Citations
Citations of this article
5Readers
Mendeley users who have this article in their library.

Abstract

Program logics and semantics tell a pleasant story about sequential composition: when executing (S1;S2), we first execute S1 then S2. To improve performance, however, processors execute instructions out of order, and compilers reorder programs even more dramatically. By design, single-threaded systems cannot observe these reorderings; however, multiple-threaded systems can, making the story considerably less pleasant. A formal attempt to understand the resulting mess is known as a "relaxed memory model."Prior models either fail to address sequential composition directly, or overly restrict processors and compilers, or permit nonsense thin-air behaviors which are unobservable in practice. To support sequential composition while targeting modern hardware, we enrich the standard event-based approach with preconditions and families of predicate transformers. When calculating the meaning of (S1; S2), the predicate transformer applied to the precondition of an event e from S2 is chosen based on the set of events in S1 upon which e depends. We apply this approach to two existing memory models.

Cite

CITATION STYLE

APA

Jeffrey, A., Riely, J., Batty, M., Cooksey, S., Kaysin, I., & Podkopaev, A. (2022). The leaky semicolon: Compositional semantic dependencies for relaxed-memory concurrency. Proceedings of the ACM on Programming Languages, 6(POPL). https://doi.org/10.1145/3498716

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free