- Jekejeke Prolog
-
Jekejeke Prolog Entwickler XLOG Technologies GmbH Aktuelle Vorabversion 0.9.1
(4. Oktober 2011)Betriebssystem Plattformunabhängig Programmiersprache Java Kategorie Prolog Deutschsprachig Nein Jekejeke Homepage Jekejeke Prolog ist eine reine Interpreter-Implementation von Prolog, die 100 % in Java geschrieben wurde. Der Interpreter existiert in zwei Ausprägungen. Die Laufzeitbibliothek liefert einen einbettbaren Prologinterpreter ohne irgendeine Benutzerschnittstelle. Die Entwicklungsumgebung liefert eine Konsoleschnittstelle, über die Entwickler Prolog Texte ausführen und debuggen können.
Die Implementation der Sprache hält sich im Wesentlichen an den ISO Core Standard[1]. Die Implementation verfügt auch über eine Anwendungsprogrammierschnittstelle. Es ist möglich Prolog Anwendungen zu schreiben, die fremde Java Prädikate benutzen und Gebrauch von Mehrfädigkeit machen. Solche Anwendungen können weitgehend schon in der Entwicklungsumgebung getestet werden, bevor sie unabhängig davon mit der Laufzeitbibliothek eingesetzt werden.
Merkmale
Seit Ausgabe 0.9.0 verfügt Jekejeke Prolog über Echtzeit-Klauselindizierung[2] über mehrere Argumente. Dadurch ändert sich die Ausführung von Prädikaten fundamental. Prädikate die in normalem Prolog nicht-deterministisch sind werden plötzlich deterministisch. Hier ist ein Beispiel, man nehme folgenden Prologtext:
map_eq([],[]). map_eq([X|Y],[Z|T]) :- X=Z, map_eq(Y,T).
Die meisten Prologsysteme, die Indizierung auf dem ersten Argument verwenden, werden folgende Anfrage deterministisch beantworten:
?- X=[1,2], map_eq(X,Y). Y=[1,2]
Aber nur wenige Prologsysteme, die mehrere Indexe bewältigen, werden folgende Anfrage auch deterministisch beantworten:
?- Y=[1,2], map_eq(X,Y). X=[1,2]
Echtzeit-Klauselindizierung zwingt den Endbenutzer nicht dazu die verschiedenen Indexe zu deklarieren. Die Indexe werden durch die Aufrufmuster zur Laufzeit automatisch bestimmt.
Einzelnachweise
- ↑ Compliance. Table of Contents. Abgerufen am 20. November 2011 (englisch).
- ↑ Benchmark. Table of Contents. Abgerufen am 20. November 2011 (englisch).
Weblinks
Kategorien:- Programmiersprache
- Java-Programm
Wikimedia Foundation.