Design and implementation of a compiler for the MiniJava language (a small subset of Java)