Formal JVM Code Analysis in JavaFAN

JavaFAN uses a Maude rewriting logic specification of the JVM semantics as the basis of a software analysis tool with competitive performance. It supports formal analysis of concurrent JVM programs by means of symbolic simulation, breadth-first search, and LTL model checking. We discuss JavaFAN’s executable formal specification of the JVM, illustrate its formal analysis capabilities using several case studies, and compare its performance with similar Java analysis tools.

[1]  Joseph A. Goguen,et al.  Algebraic semantics of imperative programs , 1996, Foundations of computing series.

[2]  Claudio Demartini,et al.  A deadlock detection tool for concurrent Java programs , 1999, Softw. Pract. Exp..

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

[4]  J. Meseguer,et al.  Building Equational Proving Tools by Reflection in Rewriting Logic , 2000 .

[5]  Prof. Dr. Robert F. Stärk,et al.  Java and the Java Virtual Machine , 2001, Springer Berlin Heidelberg.

[6]  Mitchell Wand,et al.  First-order identities as a defining language , 1980, Acta Informatica.

[7]  Manfred Broy,et al.  On the algebraic definition of programming languages , 1987, TOPL.

[8]  Michael R. Lowry,et al.  Formal Analysis of a Space-Craft Controller Using SPIN , 2001, IEEE Trans. Software Eng..

[9]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[10]  Gary T. Leavens,et al.  JML: notations and tools supporting detailed design in Java , 2000 .

[11]  Bart Jacobs,et al.  JML (poster session): notations and tools supporting detailed design in Java , 2000, OOPSLA '00.

[12]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[13]  Radu Iosif,et al.  A deadlock detection tool for concurrent Java programs , 1999, Softw. Pract. Exp..

[14]  Alberto Verdejo,et al.  Executable structural operational semantics in Maude , 2006, J. Log. Algebraic Methods Program..

[15]  José Alberto Verdejo López,et al.  Executable Structural Operational Semantics in Maude , 2003 .

[16]  John Penix,et al.  Formal Analysis of the Remote Agent Before and After Flight , 2000 .

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

[18]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[19]  Koushik Sen,et al.  An Executable Specification of Asynchronous Pi-Calculus Semantics and May Testing in Maude 2.0 , 2002, Electron. Notes Theor. Comput. Sci..

[20]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[21]  Bill Venners,et al.  Inside the Java Virtual Machine , 1997 .

[22]  Carolyn L. Talcott,et al.  Plan in Maude: Specifying an Active Network Programming Language , 2004, WRLA.

[23]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[24]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[25]  Bart Jacobs,et al.  The LOOP Compiler for Java and JML , 2001, TACAS.

[26]  Egon Börger,et al.  Java and the Java Virtual Machine: Definition, Verification, Validation , 2001 .