Abstract
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 offers coordination via lock-synchronization, and communication by synchronous message passing, including re-entrant method calls, and by instance variables shared amongthreads.
To reason about multithreaded programs, we introduce in this paper an assertional proof method for Java MT (“Multi-Threaded Java”), a small concurrent sublanguage of Java, coveringthe mentioned concurrency issues as well as the object-based core of Java, i.e., object creation, side effects, and aliasing, but leaving aside inheritance and subtyping.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
M. Abadi and K. R. M. Leino. A logic of object-oriented programs. In Bidoit and Dauchet [9], pages 682–696.
E. Ábrahám-Mumm and F. de Boer. Proof-outlines for threads in Java. In Palamidessi [25].
E. Ábrahám-Mumm, F. de Boer, W.-P. de Roever, and M. Steffen. Verification for Java’s reentrant multithreadingconcept: Soundness and completeness. Technical Report TR-ST-01-2, Lehrstuhl für Software-Technologie, Institut für Informatik und praktische Mathematik, Christian-Albrechts-Universität Kiel, 2001.
J. Alves-Foss, editor. Formal Syntax and Semantics of Java. LNCS State-of-the-Art-Survey. Springer, 1999.
P. America. A behavioural approach to subtypingin object-oriented programming languages. Technical report 443, Phillips Research Laboratories, 1989.
P. America and F. Boer. Reasoningab out dynamically evolvingpro cess structures. Formal Aspects of Computing, 6(3):269–316, 1993.
K. R. Apt. Ten years of Hoare’s logic: A survey-part I. ACM Transact. on Progr. Lang. and Syst., 3(4):431–483, 1981.
K. R. Apt, N. Francez, and W.-P. de Roever. A proof system for communicating sequential processes. ACM Transact. on Progr. Lang. and Syst., 2:359–385, 1980.
M. Bidoit and M. Dauchet, editors. Theory and Practice of Software Development, Proc. of the 7th Int. Joint Conf. of CAAP/FASE, TAPSOFT’97, volume 1214 of LNCS. Springer, 1997.
R. Breu. Algebraic Specification Techniques in Object Oriented Programming Environments. PhD thesis, Universität Passau, 1991. See also Springer LNCS 562.
P. A. Buhr, M. Fortier, and M. H. Coffin. Monitor classification. ACM Computing Surveys, 27(1):63–107, 1995.
P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. An event-based structural operational semantics of multi-threaded Java. In Alves-Foss [4].
W.-P. de Roever, F. de Boer, U. Hannemann, J. Hooman, Y. Lakhnech, M. Poel, and J. Zwiers. Concurrency Verification: Introduction to Compositional and Noncompositional Proof Methods. Cambridge University Press, 2001.
R. W. Floyd. Assigning meanings to programs. In J. T. Schwartz, editor, Proc. Sym. in Applied Mathematics, volume 19, pages 19–32, 1967.
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.
C. Hankin, editor. Programming Languages and Systems: Proc. of ESOP’ 98, Held as Part of ETAPS’ 98, volume 1381 of LNCS. Springer, 1998.
J. Hensel, M. Huisman, B. Jacobs, and H. Tews. Reasoningab out classes in objectoriented languages: Logical models and tools. In Hankin [16].
C. A. R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12:576–580, 1969. Also in [19].
C. A. R. Hoare and C. B. Jones, editors. Essays in Computing Science. International Series in Computer Science. Prentice Hall, 1989.
M. Huisman. Java Program Verification in Higher-Order Logic with PVS and Isabelle. PhD thesis, University of Nijmegen, 2001.
H. Hussmann, editor. Fundamental Approaches to Software Engineering, volume 2029 of LNCS. Springer, 2001.
G. M. Levin and D. Gries. A proof technique for communicating sequential processes. Acta Informatica, 15(3):281–302, 1981.
The LOOP project: Formal methods for object-oriented systems. http://www.cs.kun.nl/~bart/LOOP/, 2001.
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6(4):319–340, 1976.
C. Palamidessi, editor. CONCUR 2000, volume 1877 of LNCS. Springer, 2000.
A. Poetzsch-Heffter. Specification and Verification of Object-Oriented Programs. Technische Universität München, 1997. Habilitationsschrift.
A. Poetzsch-Heffter and P. Müller. A programming logic for sequential Java. In Swierstra [30], pages 162–176.
B. Reus, R. Hennicker, and M. Wirsing. A Hoare calculus for verifying Java realizations of OCL-constrained design models. In Hussmann [21], pages 300–316.
R. Stärk, J. Schmid, and E. Börger. Java and the Java Virtual Machine. Springer, 2001.
S. Swierstra, editor. Proc.of ESOP’ 99, volume 1576 of LNCS. Springer, 1999.
D. von Oheimb. Axiomatic sematics for Javalight in Isabelle/HOL. In S. Drossopoulo, S. Eisenbach, B. Jacobs, G. Leavens, P. Müller, and A. Poetzsch-Heffter, editors, Formal Techniques for Java Programs, number 269, 5/2000 in Technical Report. Fernuniversität Hagen, 2000.
D. von Oheimb. Hoare logic for Java in Isabelle/HOL. Concurrency-Practice and Experience, 2001. To appear.
D. von Oheimb and T. Nipkow. Hoare logic for NanoJava: Auxiliary variables, side effects and virtual methods revisited. Submitted for publication, 2002.
J. B. Warmer and A. G. Kleppe. The Object Constraint Language: Precise Modeling With Uml. Object Technology Series. Addison-Wesley, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ábrahám-Mumm, E., de Boer, F.S., de Roever, WP., Steffen, M. (2002). Verification for Java’s Reentrant Multithreading Concept. In: Nielsen, M., Engberg, U. (eds) Foundations of Software Science and Computation Structures. FoSSaCS 2002. Lecture Notes in Computer Science, vol 2303. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45931-6_2
Download citation
DOI: https://doi.org/10.1007/3-540-45931-6_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43366-8
Online ISBN: 978-3-540-45931-6
eBook Packages: Springer Book Archive