GNU Prolog for Java

GNU Prolog for Java is an almost conforming implementation of ISO Prolog standard in Java. It implements almost all required predicates, but there are some minor problems which do not allow me to call it conforming. This package were never indended to be used as standalone system, it is a library which is designed to embeddable into Java applications which need Prolog to solve some tasks. The interpreter intended for applications where Prolog performs combinatory search and Java do rest.

Prolog Cafe

Prolog Cafe is a Prolog-to-Java source-to-source translator system. Prolog programs are first translated into Java programs via the WAM (Warren Abstract Machine), and then those programs are compiled by a usual Java compiler such as SUN’s JDK SE. From the Java side, the translated code can be easily embedded into Java applications. From the Prolog side, any Java object can be represented as a Prolog term, and its methods and fields can be exploited from Prolog.


bddbddb stands for BDD-Based Deductive DataBase. It is an implementation of Datalog, a declarative programming language similar to Prolog for talking about relations. What makes bddbddb unique is that it represents the relations using binary decision diagrams (BDDs). BDDs are a data structure that can efficiently represent large relations and provide efficient set operations. This allows bddbddb to efficient represent and operate on extremely large relations – relations that are too large to represent explicitly.