A Compositional Operational Semantics for JavaMT
Besides the features of a class-based object-oriented language, Java integrates concurrency via its thread-classes, allowing for a multithreaded flow of control. The concurrency model includes shared-variable concurrency via instance variables, coordination via reentrant synchronization monitors, synchronous message passing, and dynamic thread creation.
In this paper we propose a class-based compositional operational semantics for multithreaded Java which provides a semantic characterization and a formal basis for further semantic investigations involving inheritance, subtyping, and full abstraction, and a compositional proof system.
KeywordsOperational Semantic Proof System Abstract Syntax Instance State Instance Variable
Unable to display preview. Download preview PDF.
- 1.M. Abadi and L. Cardelli. A Theory of Objects. Monographs in Computer Science. Springer, 1996.Google Scholar
- 2.E. Ábrahám, F. S. de Boer, W.-P. de Roever, and M. Steffen. Inductive proof-outlines for monitors in Java. In U. Nestmann and P. Stevens, editors, FMOODS’ 03, Lecture Notes in Computer Science. Springer-Verlag, Nov. 2003. To appear. A longer version appeared as Software Technologie technical report TR-ST-03-1, April 2003.Google Scholar
- 3.E. Ábrahám-Mumm, F. S. de Boer, W.-P. de Roever, and M. Steffen. A tool-supported proof system for monitors in Java. In Proceedings of the FM CO 2002, 2002. To appear.Google Scholar
- 4.E. Ábrahám-Mumm, F. S. de Boer, W.-P. de Roever, and M. Steffen. Verification for Java’s reentrant multithreading concept. In M. Nielsen and U. H. Engberg, editors, Proceedings of FoSSaCS 2002, volume 2303 of Lecture Notes in Computer Science, pages 4-20. Springer-Verlag, Apr. 2002. A longer version, including the proofs for soundness and completeness, appeared as Technical Report TR-ST-02-1, March 2002.Google Scholar
- 5.J. Alves-Foss, editor. Formal Syntax and Semantics of Java, volume 1523 of LNCS State-of-the-Art-Survey. Springer-Verlag, 1999.Google Scholar
- 6.P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. From sequential to multithreaded Java: An event-based operational semantics. In M. Johnson, editor, Proceedings of AMAST’ 97, volume 1349 of Lecture Notes in Computer Science, pages 75-90. Springer-Verlag, Dec. 1997.Google Scholar
- 7.P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. An event-based structural operational semantics of multi-threaded Java. In Alves-Foss , pages 157-200.Google Scholar
- 8.P. Di Blasio and K. Fisher. A concurrent object calculus. In U. Montanari and V. Sassone, editors, Proceedings of CONCUR’ 96, volume 1119 of Lecture Notes in Computer Science, pages 655-670. Springer-Verlag, 1996. An extended version appeared as Stanford University Technical Note STAN-CS-TN-96-36, 1996.Google Scholar
- 9.A. D. Gordon and P. D. Hankin. A concurrent object calculus: Reduction and typing. In U. Nestmann and B. C. Pierce, editors, Proceedings of HLCL’ 98, volume 16.3 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 1998.Google Scholar
- 10.J. Gosling, B. Joy, and G. L. Steele. The Java Language Specification. Addison-Wesley, 1996.Google Scholar
- 11.K. Havelund. Java Pathfinder User Manual. NASA, Aug. 1999. NASA Ames Technical Report, available at http://ase.arc.nasa.gov/havelund/jpf.html.
- 12.A. Jeffrey and J. Rathke. A fully abstract may testing semantics for concurrent objects. In Proceedings of LICS’ 02. IEEE, Computer Society Press, July 2002.Google Scholar
- 13.X. Leroy. Java bytecode verification: An overview. In G. Berry, H. Comon, and A. Finkel, editors, Proceedings of C AV’ 01, volume 2102 of Lecture Notes in Computer Science, pages 265-285. Springer-Verlag, 2001.Google Scholar
- 14.R. Stärk, J. Schmid, and E. Bürger. Java and the Java Virtual Machine: Definition, Verification, Validation. Springer-Verlag, 2001.Google Scholar
- 15.C. Wallace. The semantics of the Java programming language. Technical Report CSE-TR-355-97, University of Michigan, 1997.Google Scholar