JBurg
JBurg is a Bottom-Up Rewrite Machine Generator for Java, a compiler construction tool that is often used in the compiler’s back end to convert a tree-structured representation of a program into machine code — or, in Java’s case, bytecode. JBurg can also be used as a general-purpose dynamic programming engine.