Abstract
The semantics of the object-oriented, multi-threaded language Java is informally described in the Java Specification Book [5] where the memory model for concurrent threads is explained abstractly by means of asynchronous events and informal rules relating their occurrences. A formalization has been presented in [3] using certain posets of events (called event spaces) and a structural operational (small-step) semantics. Such an exact formal counterpart of the informal axiomatization of the Specification Book may not only serve as a reference semantics for different, possibly simplified, semantics, but also as a basis for language analysis. In this paper we present a machine-checked version of the formalization using Isabelle/HOL. Some proofs showing the redundancy of axioms in the Java Specification Book are discussed. As usual, by Isabelle’s austerity some tacit assumptions and few minor mistakes were revealed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
J. Alves-Foss, editor. Formal Syntax and Semantics of Java, volume 1523 of Lect. Notes Comp. Sci. Springer, Berlin, 1999.
Ken Arnold and James Gosling. The Java Programming Language. Addison-Wesley, Reading, Mass., 1996.
P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. An Event-Based Structural Operational Semantics of Multi-Threaded Java. In Alves-Foss [1], pages 157–200.
Sophia Drossopoulou and Susan Eisenbach. Java is Type Safe — Probably. In Mehmet Aksit, editor, Proc. 11 th Europ. Conf. Object-Oriented Programming, volume 1241 of Lect. Notes Comp. Sci., pages 389–418, Berlin, 1997. Springer.
James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, Reading, Mass., 1996.
Tatjana Hein. Formalisierung einer strukturierten operationellen Semantik für multi-threaded Java in Isabelle. Fakultät für Mathematik und Informatik, Universität Passau, 1999. Diploma-Thesis.
Doug Lea. Concurrent Programming in Java. Addison-Wesley, Reading, Mass., 1997.
Wei Li. An Operational Semantics of Multitasking and Exception Handling in Ada. In Proc. AdaTEC Conf. Ada, pages 138–151, New York, 1982. ACM SIG Ada.
Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML (Revised). MIT Press, Cambridge, Mass., 1997.
Tobias Nipkow and David von Oheimb. Machine-checking the Java Specification: Proving Type-Saftey. Alves-Foss [1].
L.C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lect. Notes in Comp. Sci. Springer Verlag, 1994.
Gordon D. Plotkin. A Structural Approach to Operational Semantics (Lecture notes). Technical Report DAIMI FN-19, Aarhus University, 1981 (repr. 1991).
Glynn Winskel. An Introduction to Event Structures. In Jacobus W. de Bakker, Willem P. de Roever, and Grzegorg Rozenberg, editors, Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency, volume 354 of Lect. Notes Comp. Sci., pages 364–397. Springer, Berlin, 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Reus, B., Hein, T. (2000). Towards a Machine-Checked Java Specification Book. In: Aagaard, M., Harrison, J. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2000. Lecture Notes in Computer Science, vol 1869. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44659-1_30
Download citation
DOI: https://doi.org/10.1007/3-540-44659-1_30
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67863-2
Online ISBN: 978-3-540-44659-0
eBook Packages: Springer Book Archive