compiler front-end