jppa - a Java Pointer and Purity Analysis tool


Short Description

jppa is a research prototype implementation of the pointer analysis for Java bytecode programs developed by Alex Salcianu as part of his PhD thesis at MIT. Descriptions of preliminary versions of the analysis can be found in Alex Salcianu's SM Thesis (MIT'01) and in a later VMCAI'05 publication focusing on the purity analysis.

NOTE: Please notice the following words in the above description:

The currently implemented clients of the pointer analysis include

Several other clients (e.g., synchronization removal) were present in earlier implementations of the pointer analysis. Their code has not been maintained over the years and they are not included in jppa.

A little bit of history:The pointer and purity analysis was implemented in the context of the Flex compiler infrastructure from MIT (retrospectively, not the best choice, but it is too late to change anything now). In February 2006, Alex Salcianu decided to separate from the MIT Flex CVS repository and move to SourceForge, in the hope of making collaboration with other people easier.

jppa is released under the terms of the GNU GPL Licence, except for those parts that explicitly state a different licence.

Current Status

Currently, Flex fully supports only applications compiled against the GNU Classpath 0.08 implementation of the Java standard library. We implemented a few additional classes to make sure that Flex can parse itself. What this means is that if your application invokes some standard library method that is not implemented in GNU Classpath 0.08 or in our extensions, then we cannot analyze it ...

Currently, we were able to able to perform stack-allocation and purity analysis on all Java SPECjvm98 and JOlden benchmarks, as well as on Java Lex and Java CUP. We were also able to perform the purity analysis on the analyzer itself, as well as on the Eclipse compiler and on the Daikon tool. We are not able to generate native executables for these larger tools, and hence, we were unable to perform stack allocation on them.

Developer Info

To get the jppa sources, you have two choices: After you get the sources, go into the Harpoon directory and read the README file.

Mailing List(s)

Hosted by Logo
Copyright (c) 2006 - Alexandru Salcianu