The objective of this project was to recreate Java Source code from an inter-mediate code representation inside a modern JVM. The reason was to build a tool making it possible to visualize the result of optimizations. The concept of backward transformations in code generation is not very well investigated compared to many other areas in computer science. Decompilers for Java byte code do exist, but none of them is doing a perfect job. This project was a bit different because it did not target Java byte code and the goal was not to produce legal Java source code but something more readable to humans than assembly language. The focus of the project was on reconstructing higher levels of program structure, mainly by eliminating goto statements...