InterProlog 2.1.2: 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 XSB Prolog (support for SWI Prolog and YAP Prolog, which has been available in prerelease form some years ago, is expected back in late 2012 with a new implementation). 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.
In the present version there are two PrologEngine class implementations available:
InterProlog is implemented as a set of standard Java classes and Prolog predicates and also some C code (for the JNI functionality), and is available under the terms of the GNU Library License.
Among other things (cf. our declarative web database tool) Declarativa provides contract services for Java+Prolog application development, porting, maintenance, etc. This work was sponsored partly by the PROLOPPE (Praxis/3/3.1/TIT/24/94) and REAP (Fundação Luso-Americana para o Desenvolvimento) projects in late 1997 and early 1998, as well as by Servisoft (http://www.servisoft.pt), and later Declarativa. Special thanks also to Universidade Nova de Lisboa and the XSB group at SUNY Stony Brook, for their continued encouragement, feedback and help. Since 1999 InterProlog maintenance and improvements have been largely supported by XSB, Inc, who has also agreed to release its (JNI) NativeEngine as part of InterProlog 2.0 on 2002. Multiple Prolog support was partially sponsored by project FLUX (POSI/SRI/40958/2001), Fundação de Ciência e Tecnologia, Portugal. Individual thanks are due to Luis Moniz Pereira, Terry Swift, David S. Warren, Rupert Hopkins, Tatyana Vidrevich, Luis Castro, Chris Rued and others. InterProlog was mostly developed by Miguel Calejo.
Declarativa - Serviços de Informática, Lda.