A memory model sensitive checker for C#

18Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Modern concurrent programming languages like Java and C# have a programming language level memory model; it captures the set of all allowed behaviors of programs on any implementation platform - uni- or multi-processor. Such a memory model is typically weaker than Sequential Consistency and allows reordering of operations within a program thread. Therefore, programs verified correct by assuming Sequential Consistency (that is, each thread proceeds in program order) may not behave correctly on certain platforms! The solution to this problem is to develop program checkers which are memory model sensitive. In this paper, we develop such an invariant checker for the programming language C#. Our checker identifies program states which are reached only because the C# memory model is more relaxed than Sequential Consistency. Furthermore, our checker identifies (a) operation reorderings which cause such undesirable states to be reached, and (b) simple program modifications - by inserting memory barrier operations -which prevent such undesirable reorderings. © Springer-Verlag Berlin Heidelberg 2006.

Cite

CITATION STYLE

APA

Huynh, T. Q., & Roychoudhury, A. (2006). A memory model sensitive checker for C#. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4085 LNCS, pp. 476–491). Springer Verlag. https://doi.org/10.1007/11813040_32

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