\"A Java front-end and enhancement for Prolog\"
InterProlog is an open source Java front-end and functional enhancement for standard Prologs, running on Windows, Linux and Mac OS X, and currently supporting the top open source logic engines: XSB Prolog from the USA (most declarative), SWI Prolog from the Netherlands (best environment) and YAP Prolog from Portugal (fastest). InterProlog comes with Prolog term visualization aids and programming examples, namely a graphical Sudoku puzzle editor and solver.
InterProlog provides Java with the ability to call any Prolog goal through a PrologEngine object, and for Prolog to invoke any Java method through a javaMessage predicate, while passing virtually any Java objects and Prolog terms between both languages with a single instruction.
Mutual recursion and (Java) multithreading are supported. Java Reflection and Serialization mechanisms, together with Prolog’s natural strengths, are used to give the combination great flexibility and dynamism. Rather than tasting like an objectified Prolog/C interfaces, InterProlog provides a higher-level API equating objects to terms, inducing a more concise and declarative programming style.