Java']Java consistency: Nonoperational characterizations for Java']Java memory behavior

被引:7
|
作者
Gontmakher, A [1 ]
Schuster, A [1 ]
机构
[1] Technion Israel Inst Technol, Dept Comp Sci, IL-32000 Haifa, Israel
来源
ACM TRANSACTIONS ON COMPUTER SYSTEMS | 2000年 / 18卷 / 04期
关键词
verification; !text type='Java']Java[!/text] memory models; ultithreading; nonoperational specification;
D O I
10.1145/362670.362673
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The Java Language Specification (JLS) [Gosling et al. 1996] provides an operational definition for the consistency of shared variables. This definition remains unchanged in the JLS 2nd edition, currently under peer review. The definition, which relies on a specific abstract machine as its underlying model, is very complicated. Several subsequent works have tried to simplify and formalize it. However, these revised definitions are also operational, and thus have failed to highlight the intuition behind the original specification. In this work we provide a complete nonoperational specification for Java and for the JVM, excluding synchronized operations. We provide a simpler definition, in which we clearly distinguish the consistency model that is promised to the programmer from that which should be implemented in the JVM. This distinction, which was implicit in the original definition, is crucial for building the JVM. We find that the programmer model is strictly weaker than that of the JVM, and precisely define their discrepancy. Moreover, our definition is independent of any specific (or even abstract) machine, and can thus be used to verify JVM implementations and compiler optimizations on any platform. Finally, we show the precise range of consistency relaxations obtainable for the Java memory model when a certain compiler optimization-called prescient stores in JLS-is applicable.
引用
收藏
页码:333 / 386
页数:54
相关论文
共 50 条
  • [21] Java']Java/A - Taking components into Java']Java
    Hacklinger, F
    [J]. INTELLIGENT AND ADAPTIVE SYSTEMS AND SOFTWARE ENGINEERING, 2004, : 163 - 168
  • [22] Accelerating Sequential Consistency for Java']Java with Speculative Compilation
    Liu, Lun
    Millstein, Todd
    Musuvathi, Madanlal
    [J]. PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 16 - 30
  • [23] Formalizing the safety of Java']Java, the Java']Java virtual machine, and Java']Java card
    Hartel, PH
    Moreau, L
    [J]. ACM COMPUTING SURVEYS, 2001, 33 (04) : 517 - 558
  • [24] Programming Coordinated Behavior in Java']Java
    Harel, David
    Marron, Assaf
    Weiss, Gera
    [J]. ECOOP 2010: OBJECT-ORIENTED PROGRAMMING, 2010, 6183 : 250 - +
  • [25] Understanding the behavior of Java']Java programs
    Systä, T
    [J]. SEVENTH WORKING CONFERENCE ON REVERSE ENGINEERING - PROCEEDINGS, 2000, : 214 - 223
  • [26] CHANGING MARRIAGE BEHAVIOR IN JAVA']JAVA
    HULL, TH
    HULL, VJ
    [J]. POPULATION INDEX, 1985, 51 (03) : 433 - 433
  • [27] The indeterministic behavior of scoped memory in Real-Time Java']Java
    Higuera-Toledano, M. Teresa
    [J]. 2006 IEEE INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND APPLICATIONS, VOLS 1-3, 2006, : 656 - 663
  • [28] Making the Java']Java Memory Model Safe
    Lochbihler, Andreas
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2013, 35 (04):
  • [29] Flow Java']Java: Declarative concurrency for Java']Java
    Drejhammar, F
    Schulte, C
    Brand, P
    Haridi, S
    [J]. LOGIC PROGRAMMING, PROCEEDINGS, 2003, 2916 : 346 - 360
  • [30] Java']Java: Coordination and communication for Java']Java agents
    Ciancarini, P
    Rossi, D
    [J]. MOBILE OBJECT SYSTEMS: TOWARDS THE PROGRAMMABLE INTERNET, 1997, 1222 : 213 - 226