An Event-Based Structural Operational Semantics of Multi-Threaded Java

A structural operational semantics of a signiicant sublan-guage of Java is presented, including the running and stopping of threads, thread interaction via shared memory, synchronization by monitoring and notiication, and sequential control mechanisms such as exception handling and return statements. The operational semantics is paramet-ric in the notion of \event space" 6], which formalizes the rules that threads and memory must obey in their interaction. Diierent computational models are obtained by modifying the well-formedness conditions on event spaces while leaving the operational rules untouched. In particular , we implement the prescient stores described in 10, x17.8] which allow certain intermediate code optimizations, and prove that such stores do not aaect the semantics of properly synchronized programs.

[1]  Don Syme,et al.  Proving Java Type Soundness , 1999, Formal Syntax and Semantics of Java.

[2]  Martin Wirsing,et al.  From Sequential to Multi-Threaded Java: An Event-Based Operational Semantics , 1997, AMAST.

[3]  Sophia Drossopoulou,et al.  Java is Type Safe - Probably , 1997, ECOOP.

[4]  Martín Abadi,et al.  A type system for Java bytecode subroutines , 1999, TOPL.

[5]  Glynn Winskel,et al.  An Introduction to Event Structures , 1989 .

[6]  Martín Abadi,et al.  A Logic of Object-Oriented Programs , 1997, Verification: Theory and Practice.

[7]  Doug Lea,et al.  Concurrent Programming In Java , 1996 .

[8]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[9]  Grzegorz Rozenberg,et al.  Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency , 1988, Lecture Notes in Computer Science.

[10]  Tobias Nipkow,et al.  Machine-Checking the Java Specification: Proving Type-Safety , 1999, Formal Syntax and Semantics of Java.

[11]  Matthias Felleisen,et al.  A Programmer's Reduction Semantics for Classes and Mixins , 1999, Formal Syntax and Semantics of Java.

[12]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

[13]  Jim Alves-Foss,et al.  Formal Syntax and Semantics of Java , 2002, Lecture Notes in Computer Science.

[14]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[15]  Martin Wirsing,et al.  Verifying a compiler optimization for Multi-Threaded Java , 1997, WADT.

[16]  Egon Börger,et al.  A Programmer Friendly Modular Definition of the Semantics of Java , 1999, Formal Syntax and Semantics of Java.

[17]  Charles Wallace The semantics of the Java programming language: Preliminary version , 1997 .