A Compositional Operational Semantics for JavaMT

  • Erika Ábrahám
  • Frank S. de Boer
  • Willem-Paul de Roever
  • Martin Steffen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2772)


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.


Operational Semantic Proof System Abstract Syntax Instance State Instance Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. Abadi and L. Cardelli. A Theory of Objects. Monographs in Computer Science. Springer, 1996.Google Scholar
  2. 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. 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. 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. 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. 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. 7.
    P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. An event-based structural operational semantics of multi-threaded Java. In Alves-Foss [5], pages 157-200.Google Scholar
  8. 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. 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. 10.
    J. Gosling, B. Joy, and G. L. Steele. The Java Language Specification. Addison-Wesley, 1996.Google Scholar
  11. 11.
    K. Havelund. Java Pathfinder User Manual. NASA, Aug. 1999. NASA Ames Technical Report, available at
  12. 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. 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. 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. 15.
    C. Wallace. The semantics of the Java programming language. Technical Report CSE-TR-355-97, University of Michigan, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Erika Ábrahám
    • 1
  • Frank S. de Boer
    • 2
  • Willem-Paul de Roever
    • 1
  • Martin Steffen
    • 1
  1. 1.Christian-Albrechts-UniversityKielGermany
  2. 2.CWIAmsterdamThe Netherlands

Personalised recommendations