Marmot: An Optimizing Compiler for Java

  • Bob Fitzgerald
  • Todd B. Knoblock
  • Erik Ruf
  • Bjarne Steensgaard

MSR-TR-99-33 |

The Marmot system is a research platform for studying the implementation of high level programming languages. It currently comprises an optimizing native code compiler, runtime system, and libraries for a large subset of Java. Marmot integrates well-known representation, optimization, code generation, and runtime techniques with a few Java-specific features to achieve competitive performance. This paper contains a description of the Marmot system design, along with highlights of our experience applying and adapting traditional implementation techniques to Java. A detailed performance evaluation assesses both Marmot’s overall performance relative to other Java and C++ implementations, and the relative costs of various Java language features in Marmot-compiled code. Our experience with Marmot has demonstrated that well-known compilation techniques can produce very good performance for static Java applications comparable or superior to other Java systems, and approaching that of C++ in some cases.