compiler written in Java