1999
DOI: 10.1007/3-540-48737-9_5
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: A structural operational semantics of a significant sublanguage of Java is presented, including the running and stopping of threads, thread interaction via shared memory, synchronization by monitoring and notification, and sequential control mechanisms such as exception handling and return statements. The operational semantics is parametric in the notion of "event space" [6], which formalizes the rules that threads and memory must obey in their interaction. Different computational models are obtained by modify… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
28
0

Year Published

2000
2000
2005
2005

Publication Types

Select...
6
1

Relationship

1
6

Authors

Journals

citations
Cited by 47 publications
(28 citation statements)
references
References 14 publications
0
28
0
Order By: Relevance
“…Formal semantics of Java, including multithreaded execution, and its virtual machine in terms of abstract state machines is given in [29]. A structural operational semantics of multithreaded Java can be found in [12].…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…Formal semantics of Java, including multithreaded execution, and its virtual machine in terms of abstract state machines is given in [29]. A structural operational semantics of multithreaded Java can be found in [12].…”
Section: Resultsmentioning
confidence: 99%
“…[4,29,12]). The research concerning Java's proof theory mainly concentrated on various aspects of sequential sublanguages (see e.g.…”
Section: Introductionmentioning
confidence: 99%
“…through (iv.) of this definition rely on the formalization of the JMM [2,10]. For instance, Item (ii.)…”
Section: Fig 2 Sliced Event Spacementioning
confidence: 99%
“…Java event spaces [2,10] are partial orders of the actions performed by the main memory and the threads of a multi-threaded Java program. In previous work [1] we showed how classical slicing techniques can be employed to reduce the size of Java event spaces.…”
Section: Introductionmentioning
confidence: 99%
“…The interference problem related to shared variables reemerges when threads operate concurrently in the same object, which happens with nonserialized methods in Java. Reasoning about programs in this setting is a highly complex matter [1,10]: Safety is by convention rather than by language design [9]. Verification considerations therefore suggest that all methods should be serialized as done in e.g.…”
Section: Introductionmentioning
confidence: 99%