NASA Logo

NTRS

NTRS - NASA Technical Reports Server

Back to Results
Model Checker for Java ProgramsJava Pathfinder (JPF) is a verification and testing environment for Java that integrates model checking, program analysis, and testing. JPF consists of a custom-made Java Virtual Machine (JVM) that interprets bytecode, combined with a search interface to allow the complete behavior of a Java program to be analyzed, including interleavings of concurrent programs. JPF is implemented in Java, and its architecture is highly modular to support rapid prototyping of new features. JPF is an explicit-state model checker, because it enumerates all visited states and, therefore, suffers from the state-explosion problem inherent in analyzing large programs. It is suited to analyzing programs less than 10kLOC, but has been successfully applied to finding errors in concurrent programs up to 100kLOC. When an error is found, a trace from the initial state to the error is produced to guide the debugging. JPF works at the bytecode level, meaning that all of Java can be model-checked. By default, the software checks for all runtime errors (uncaught exceptions), assertions violations (supports Java s assert), and deadlocks. JPF uses garbage collection and symmetry reductions of the heap during model checking to reduce state-explosion, as well as dynamic partial order reductions to lower the number of interleavings analyzed. JPF is capable of symbolic execution of Java programs, including symbolic execution of complex data such as linked lists and trees. JPF is extensible as it allows for the creation of listeners that can subscribe to events during searches. The creation of dedicated code to be executed in place of regular classes is supported and allows users to easily handle native calls and to improve the efficiency of the analysis.
Document ID
20100010932
Acquisition Source
Ames Research Center
Document Type
Other - NASA Tech Brief
Authors
Visser, Willem
(Research Inst. for Advanced Computer Science Moffett Field, CA, United States)
Date Acquired
August 24, 2013
Publication Date
September 1, 2007
Publication Information
Publication: NASA Tech Briefs, September 2007
Subject Category
Man/System Technology And Life Support
Report/Patent Number
ARC-15388-1
Distribution Limits
Public
Copyright
Public Use Permitted.
No Preview Available