JIProlog
JIProlog - Java Internet Prolog is a cross-platform pure Java 100% Prolog interpreter that integrates Prolog and Java languages in a very fascinating way: it allows to call Prolog predicates from Java without dealing with native code (JNI) and allows to invoke Java methods from Prolog in the same way you call predicates. JIProlog supplies a powerful Integrated Development Environment to edit, consult, run and test Prolog programs and it provides a set of Java classes that forms the JIProlog API.
JIProlog API
JIProlog API allow to:
- call Prolog Predicates from Java without dealing with native code and JNI;
- call Java methods and classes from Prolog without dealing with foreign language interfaces;
- write custom Prolog predicates in Java in order to extend the core set of built-in predicates;
- extend the graphical user interface of a Prolog program implementing windows and dialogs in Java as custom predicates;
- integrate relational databases in Prolog through a JDBC to Prolog bridge, treating tables and views as Prolog predicates.
Compatibility
JIProlog is compliant with the major Prolog interpreters. It supports most of ISO specifications and many of the most common and used built-in predicates (see JIProlog Reference manual).
JIProlog is compliant with:
- Java 1.1 Platform or later;
- Android;
- J2ME (MIDP 2.0-CLDC1.0 or later);
- Personal Java 1.1 or later.
Interface Java to Prolog and vice versa
JIProlog comes with a complete API to link Prolog and Java languages from both sides. The API can is composed of three parts: the First One regards the way to invoke Prolog from Java; the second one deals with the techniques to call Java methods from Prolog by implementing custom Prolog built-in predicates in the form of Java classes or by calling Java methods through Java Reflection API; the third one treats the way to link Prolog predicates with tables in an external databases via JDBC.
JIProlog Intergrated Development Environment
JIProlog supplies an Integrated Development Environment for Prolog based on Jext editor. Such an IDE supplies many interesting features to edit, compile manage files and projects in different formats and languages (such as Java, Perl, C/C++, HTML), gives syntax colorisation for Prolog language, and so on.
JIProlog stand-alone interpreter
JIProlog stand-alone interpreter is a Java application that runs Prolog programs as stand-alone applications.
JIProlog Server
JIProlog Server is a daemon that brings JIProlog Interpreter’s functionalities over the network via TCP/IP, supplying any remote client with an interface to submit queries and to receives the related solutions. Clients should be implemented using the a special class supplied with the API that implements the client-side protocol as described in the section “How to implement a JIProlog client” in the appendix A of JIProlog Reference manual.
External links
References
- 3APL- An Abstract Agent Programming Language: a programming language for implementing cognitive agents. - http://www.cs.uu.nl/3apl
- Caffeine: a system for the dynamic analysis of Java programs. Caffeine is made of a Prolog engine that analyzes the execution of a Java program on a remote virtual machine.1
- No Java Without Caffeine: a tool for Dynamic Analysis of Java Programs - 2
- Du langage à l'image. Génération automatique de rèbus - 3
- Adding Functional Programming into the Holo Language - [www.informatik.uni-kiel.de/~wflp2001/proceedings/papers/paper25.ps.gz]
- JIProlog: un interprete Prolog in java - 4
- Logic Programming - 5
- Towards Effective Parallel Logic Programming - [ftp2.cnpq.br/pub/protem/workshop2001/nsf/artigos/vitor_santos_costa_clopn.ps]
- 3APL- An Abstract Agent Programming Language: a programming language for implementing cognitive agents. - 6