forked from phoedos/pmd

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@2908 51baf565-9d33-0410-a72c-fc3788e3496d
35 lines
1.6 KiB
XML
35 lines
1.6 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<document>
|
|
<properties>
|
|
<author email="tom@infoether.com">Tom Copeland</author>
|
|
<title>Future directions for PMD</title>
|
|
</properties>
|
|
|
|
<body>
|
|
<section name="Future Directions">
|
|
<subsection name="Better symbol analysis">
|
|
<p>Currently PMD only looks at one source file at a time. Instead, it
|
|
should resolve symbols across classes. This will eliminate some open
|
|
bugs and enable a lot more rules to be written. However, it'll taken some doing,
|
|
because it'll require parsing of class files. Lots of work here.</p>
|
|
</subsection>
|
|
<subsection name="Data flow analysis (DFA)">
|
|
<p>Raik Schroeder, a graduate student at
|
|
<a href="http://www.fh-stralsund.de/fh_stralsund/powerslave,id,223,nodeid,.html">Fachhochschule Stralsund</a>,
|
|
has written a DFA layer that should enable us to write some more complicated rules - stuff like
|
|
common subexpression elimination, loop invariant code motion (and code hoisting), shrink wrapping, and partial redundancy elimination.
|
|
The code is currently in CVS in the net.sourceforge.pmd.dfa package, and we're going through
|
|
it now figuring out what rules we can write that use it. We should be able to
|
|
use it to simplify some current rules, as well. </p>
|
|
</subsection>
|
|
<subsection name="Control Flow Graph (CFG)">
|
|
<p>Access to a CFG would let us detect some algebraic simplications. We could also
|
|
do better dead-code detection. Again, lots of PhD possibilities here.</p>
|
|
</subsection>
|
|
</section>
|
|
</body>
|
|
</document>
|
|
|
|
|