A six level compiler for a subset of Java known as MiniJava