<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Java_Pathfinder</id>
	<title>Java Pathfinder - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Java_Pathfinder"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Java_Pathfinder&amp;action=history"/>
	<updated>2026-05-09T18:42:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Java_Pathfinder&amp;diff=1619161&amp;oldid=prev</id>
		<title>imported&gt;HyperAccelerated: Remove unsourced example</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Java_Pathfinder&amp;diff=1619161&amp;oldid=prev"/>
		<updated>2025-02-02T15:58:32Z</updated>

		<summary type="html">&lt;p&gt;Remove unsourced example&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
| name                   = Java Pathfinder&lt;br /&gt;
| logo                   = &lt;br /&gt;
| screenshot             = &lt;br /&gt;
| caption                = &lt;br /&gt;
| developer              = [[NASA]]&lt;br /&gt;
| latest release version = 6.0&lt;br /&gt;
| latest release date    = {{release date|2010|11|30}}&lt;br /&gt;
| operating system       = [[Cross-platform]]&lt;br /&gt;
| size                   = 1.6 MB (archived)&lt;br /&gt;
| programming language   = [[Java (programming language)|Java]]&lt;br /&gt;
| genre                  = [[Software verification]] tool, [[Virtual machine]]&lt;br /&gt;
| license                = [[Apache License|Apache License Version 2]]&lt;br /&gt;
| website                = https://github.com/javapathfinder/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Java Pathfinder&amp;#039;&amp;#039;&amp;#039; (JPF) is a system to verify executable [[Java bytecode]] programs. JPF was developed at the [[NASA]] [[Ames Research Center]] and open sourced in 2005. The acronym JPF is not to be confused with the unrelated &amp;#039;&amp;#039;Java Plugin Framework&amp;#039;&amp;#039; project.&lt;br /&gt;
&lt;br /&gt;
The core of JPF is a [[Java Virtual Machine]]. JPF executes normal [[Java bytecode]] programs and can store, match and restore program states. Its primary application has been [[Model checking]] of [[Concurrent computing|concurrent programs]], to find defects such as [[Race condition|data races]] and [[Deadlock (computer science)|deadlock]]s. With its respective extensions, JPF can also be used for a variety of other purposes, including&lt;br /&gt;
* model checking of distributed applications&lt;br /&gt;
* model checking of user interfaces&lt;br /&gt;
* test case generation by means of symbolic execution&lt;br /&gt;
* low level program inspection&lt;br /&gt;
* program instrumentation and runtime monitoring&lt;br /&gt;
JPF has no fixed notion of state space branches and can handle both data and scheduling choices.&lt;br /&gt;
&lt;br /&gt;
== Extensibility ==&lt;br /&gt;
JPF is an open system that can be extended in a variety of ways. The main extension constructs are&lt;br /&gt;
* &amp;#039;&amp;#039;listeners&amp;#039;&amp;#039; -  to implement complex properties (e.g. temporal properties)&lt;br /&gt;
* &amp;#039;&amp;#039;peer classes&amp;#039;&amp;#039; - to execute code at the host JVM level (instead of JPF), which is mostly used to implement native methods&lt;br /&gt;
* &amp;#039;&amp;#039;bytecode factories&amp;#039;&amp;#039; - to provide alternative execution semantics of bytecode instructions (e.g. to implement symbolic execution)&lt;br /&gt;
* &amp;#039;&amp;#039;choice generators&amp;#039;&amp;#039; - to implement state space branches such as scheduling choices or data value sets&lt;br /&gt;
* &amp;#039;&amp;#039;serializers&amp;#039;&amp;#039; - to implement program state abstractions&lt;br /&gt;
* &amp;#039;&amp;#039;publishers&amp;#039;&amp;#039; - to produce different output formats&lt;br /&gt;
* &amp;#039;&amp;#039;search policies&amp;#039;&amp;#039; - to use different program state space traversal algorithms&lt;br /&gt;
&lt;br /&gt;
JPF includes a runtime module system to package such constructs into separate &amp;#039;&amp;#039;JPF extension projects&amp;#039;&amp;#039;. A number of such projects are available from the main JPF server, including a symbolic execution mode, numeric analysis, race condition detection for relaxed memory models, user interface model checking and many more.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* JPF cannot analyze [[Java Native Interface|Java native methods]]. If the system under test calls such methods, these have to be provided within peer classes, or intercepted by listeners&lt;br /&gt;
* as a model checker, JPF is susceptible to [[Combinatorial explosion]], although it performs on-the-fly [[Partial order reduction]]&lt;br /&gt;
* the configuration system for JPF modules and runtime options can be complex&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[http://fmt.cs.utwente.nl/tools/moonwalker/ MoonWalker] - similar to Java PathFinder, but for .NET programs instead of Java programs&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.nasa.gov/centers/ames/news/releases/2005/05_28AR.html New NASA Software Detects &amp;#039;Bugs&amp;#039; in Java Computer Code]&lt;br /&gt;
* [https://www.nasa.gov/centers/ames/multimedia/images/2005/javapathfinder.html NASA Develops New Software to Detect &amp;quot;Bugs&amp;quot; in Java Computer Code]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Willem Visser, [[Corina Păsăreanu|Corina S. Păsăreanu]], Sarfraz Khurshid. [http://users.ece.utexas.edu/~khurshid/papers/JPF-issta04.pdf Test Input Generation with Java PathFinder.] In: George S. Avrunin, Gregg Rothermel (Eds.): Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis 2004. ACM Press, 2004. {{ISBN|1-58113-820-2}}.&lt;br /&gt;
[[Category:Free software testing tools]]&lt;br /&gt;
* Willem Visser, Klaus Havelund, Guillaume Brat, Seungjoon Park, Flavio Lerda, Model Checking Programs, Automated Software Engineering 10(2), 2003.&lt;br /&gt;
* Klaus Havelund, Willem Visser, Program Model Checking as a New Trend, STTT 4(1), 2002.&lt;br /&gt;
* Klaus Havelund, Thomas Pressburger, Model Checking Java Programs using Java PathFinder, STTT 2(4), 2000.&lt;br /&gt;
&lt;br /&gt;
[[Category:Articles with example Java code]]&lt;br /&gt;
[[Category:Software using the Apache license]]&lt;/div&gt;</summary>
		<author><name>imported&gt;HyperAccelerated</name></author>
	</entry>
</feed>