Compilers do a lot of important things. They don't just transform source code into executables: they transform information with defined semantics from one language to another, preserving the semantic meaning.
Here's a list of free tools that I suspect would benefit from code sharing and reuse, not to mention uncommon ideas like using combinatorial search for optimization.
joeq looks like it has the flexibility I want, so I was a little surprised to discover that it is written almost entirely in Java. Now that I've thought about it, I realize Java is a really good choice. The problem is that joeq's implementation is far from complete. It needs contributions from the above-named projects, in addition to fixes for obvious usability issues. (In my limited experiments, it has only worked for the simplest of Java applications, despite "borrowing" the full Sun JDK 1.4 class library.) Even more unfortunate: it has about 126,000 lines of Java source but very little documentation, and at that those lines of source need refactoring to eliminate duplicate code. In short, joeq looks like it has a good start, but needs help.
See also the Stanford SUIF Compiler Group.