The MiniJava Project
 Version 1
 Version 2
 Book version

What is Mini-Java?

MiniJava is a subset of Java. The meaning of a MiniJava program is given by its meaning as a Java program. Overloading is not allowed in MiniJava. The MiniJava statement System.out.println( ... ); can only print integers. The MiniJava expression e.length only applies to expressions of type int [].

The MiniJava project was first used as the course project by Professor Jens Palsberg in CS352 Compilers: Principles and Practice Fall 2000. The Version 1 link on the left links to this version of the project.

Version 2 is an improvement on the first version.

  • The "&" in MiniJava was chaged to "&&"
  • The call in all the intermediate languages in version1 was an indirect call which confused some students. This is changed now.
  • We redesigned Kanga which makes the final translation to assembly a lot easier.

The Book version is the version that will appear in Professor Andrew Appel's book Modern Compiler Implementation in Java, Second Edition