Prolog Compiler