Atomicity refinement for verified compilation

10Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

Abstract

We consider the verified compilation of high-level managed languages like Java or C# whose intermediate representations provide support for shared-memory synchronization and automatic memory management. Our development is framed in the context of the Total Store Order relaxedmemorymodel. Ensuring complier correctness is challenging because high-level actions are translated into sequences of nonatomic actions with compiler-injected snippets of racy code; the behavior of this code depends not only on the actions of other threads but also on out-of-order executions performed by the processor. A näýve proof of correctness would require reasoning over all possible thread interleavings. In this article, we propose a refinement-based proof methodology that precisely relates concurrent code expressed at different abstraction levels, cognizant throughout of the relaxed memory semantics of the underlying processor. Our technique allows the compiler writer to reason compositionally about the atomicity of low-level concurrent code used to implementmanaged services. We illustrate our approach with examples taken from the verification of a concurrent garbage collector. © 2014 ACM.

Cite

CITATION STYLE

APA

Jagannathan, S., Laporte, V., Petri, G., Pichardie, D., & Vitek, J. (2014). Atomicity refinement for verified compilation. ACM Transactions on Programming Languages and Systems, 36(2). https://doi.org/10.1145/2601339

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