Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/985072.985078acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

The design and verification of Java's memory model

Published: 04 November 2002 Publication History

Abstract

After many years of waiting, real support for multi-threading has been integrated into mainstream programming languages. Inclusion of this long-awaited feature brings with it a need for a clear and direct explanation of how threads interact through memory. Java's threading specification, its memory model, is fundamentally flawed [1, §17]. Some language features, like volatile fields, are under-specified: their treatment is so weak as to be useless. Other features, including fields without access modifiers, are over-specified: the memory model prevents almost all optimizations of code containing these "normal" fields. Finally, some features, like final fields, have no specification at all.This work has attempted to remedy these limitations; we provide a clear and concise definition of thread interaction. It is sufficiently simple for programmers to work with, and flexible enough to take advantage of compiler and processor-level optimizations. We provide techniques for verifying that the model does what we expect it to do, and apply them. These techniques take the form of both rigorous proof and automated simulation. This work is critical for portable, safe, secure and efficient support of multi-threading.

References

[1]
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996.
[2]
J. Manson and W. Pugh. Semantics of Multithreaded Java. Technical Report CS-TR-4215, Dept. of Computer Science, University of Maryland, College Park, Mar. 2001.
[3]
J. Manson and W. Pugh. The Java Memory Model Simulator. In Workshop on Formal Techniques for Java Programs, in association with ECOOP 2002, June 2002.

Cited By

View all
  • (2022)Reordering Under the ECMAScript Memory Consistency ModelLanguages and Compilers for Parallel Computing10.1007/978-3-030-95953-1_14(198-214)Online publication date: 16-Feb-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '02: Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
November 2002
131 pages
ISBN:1581136269
DOI:10.1145/985072
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 November 2002

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA02
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Reordering Under the ECMAScript Memory Consistency ModelLanguages and Compilers for Parallel Computing10.1007/978-3-030-95953-1_14(198-214)Online publication date: 16-Feb-2022

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media