pmd/pmd/xdocs/future.xml
Tom Copeland 2a222a0bb6 credit where it's due
git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@2908 51baf565-9d33-0410-a72c-fc3788e3496d
2004-09-02 21:25:10 +00:00

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>