Provides interfaces for invoking the compiler, listening to compilation events and implementing custom compilers or compilation steps.