Linking Event-B and Concurrent Object-Oriented Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Coordinating Object Oriented Components Using Data-Flow Networks
Formal Methods for Components and Objects
Exploiting a generic approach for constructing mobile device applications
Proceedings of the Fourth International ICST Conference on COMmunication System softWAre and middlewaRE
Static detection of Livelocks in Ada multitasking programs
Ada-Europe'07 Proceedings of the 12th international conference on Reliable software technologies
Extending ravenscar with CSP channels
Ada-Europe'05 Proceedings of the 10th Ada-Europe international conference on Reliable Software Technologies
Automatic translation from combined B and CSP specification to java programs
B'07 Proceedings of the 7th international conference on Formal Specification and Development in B
Implementing generalized alternative construct for erasmus language
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
Hi-index | 0.00 |
Java threads are synchronized through primitives based upon monitor concepts developed in the early 1970s. The semantics of Java's primitives have only been presented in natural language -- this paper remedies this with a simple and formal CSP model. In view of the difficulties encountered in reasoning about any non-trivial interactions between Java threads, being able to perform that reasoning in a formal context (where careless errors can be highlighted by mechanical checks) should be a considerable confidence boost. Further, automated model-checking tools can be used to root out dangerous states (such as deadlock and livelock), find overlooked race hazards and prove equivalence between algorithms (e.g. between optimized and unoptimized versions). A case study using the CSP model to prove the correctness of the JCSP channel implementation (which is built in terms of standard Java monitor synchronizations) is presented.