MikroJava is a lightweight programming language suitable for usage in both basic and advanced compiler construction university courses. It is a strongly-typed object-oriented programming language.
The compiler uses static single assignment (SSA) form to implement global optimizations, as well as for uninitialized variable detection.
The following optimizations were implemented:
- Dead Code Elimination (mark-sweep algorithm)
- Function Inlining
- Loop Invariant Code Motion
- Local Value Numbering
- CFG topology optimizer
####Author:
- Lazar M. Cvetković (l.cvetkovic.997@gmail.com)
####Advisor:
- Prof. Dr Dragan Bojić (bojic@etf.bg.ac.rs)
####Date:
- March 2020 - June 2020
- February 2021 - March 2021