compiling into intermediate language