A Translator of Java Programs to TADDs

The model checking tools Uppaal and VerICS accept a description of a network of Timed Automata with Discrete Data (TADDs) as input. Thus, to verify a concurrent programwritten in Java by means of these tools, first a TADD model of the program must be build. Therefore, we have developed the J2TADD tool that translates a Java program to a network of TADDs; the paper presents this tool. The J2TADD tool works in two stages. The first one consists in translation of a Java code to an internal assembly language (IAL). Then, the resulting assembly code is translated to a network of TADDs. We exemplify the use of the translator by means of the following well-known concurrency examples written in Java: race condition problem, dining philosophers problem, single sleeping barber problem and readers and writers problem.

[1]  Corina S. Pasareanu,et al.  Verification of Java Programs Using Symbolic Execution and Invariant Generation , 2004, SPIN.

[2]  Wojciech Penczek,et al.  Verics: A Tool for Verifying Timed Automata and Estelle Specifications , 2003, TACAS.

[3]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[4]  David L. Dill,et al.  Java model checking , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[5]  Agata Janowska,et al.  Slicing of Timed Automata with Discrete Data , 2006, Fundam. Informaticae.

[6]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[7]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[8]  Andrzej Zbrzezny,et al.  Towards Verification of Java Programs in perICS , 2008, Fundam. Informaticae.

[9]  José Meseguer,et al.  Formal Analysis of Java Programs in JavaFAN , 2004, CAV.

[10]  Wang Yi,et al.  New Generation of UPPAAL , 1998 .

[11]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[12]  Agata Pólrola,et al.  SAT-Based Reachability Checking for Timed Automata with Discrete Data , 2007, Fundam. Informaticae.

[13]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[14]  Stephan Merz,et al.  Model Checking , 2000 .