Implementation of compiler for an object-oriented language called MiniJava, into LLVM assembly/IR. MiniJava is (almost exactly) a subset of Java. Utilization of Apache Ant, a Java library and command-line tool, in order to compile, assemble, test and run the project. The project includes variable and method renaming, LLVM code Generation, Semantic check, and Lexing and parsing.