On validity of program transformations in the Java memory model

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

Abstract

We analyse the validity of several common program transformations in multi-threaded Java, as defined by the Memory Model section of the Java Language Specification. The main design goal of the Java Memory Model (JMM) was to allow as many optimisations as possible. However, we find that commonly used optimisations, such as common subexpression elimination, can introduce new behaviours and so are invalid for Java. In this paper, we describe several kinds of transformations and explain the problems with a number of counterexamples. More positively, we also examine some valid transformations, and prove their validity. Our study contributes to the understanding of the JMM, and has the practical impact of revealing some cases where the Sun Hotspot JVM does not comply with the Java Memory Model. © 2008 Springer-Verlag.

Cite

CITATION STYLE

APA

Ševčík, J., & Aspinall, D. (2008). On validity of program transformations in the Java memory model. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 5142 LNCS, pp. 27–51). https://doi.org/10.1007/978-3-540-70592-5_3

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