Initial implementation of the compiler