Ich persönlich verwende gprolog oder swipl in der interpretierten Umgebung. Sie schreiben also Fakten und Regeln in eine mydb.pl-Datei und öffnen den Interpreter im selben Verzeichnis. Sobald die Eingabeaufforderung angezeigt wird, können Sie
abfragen['mydb.pl'].
zum Laden Ihrer Datenbank. Jetzt können Sie entweder die Warnungen/Fehler sehen oder die Abfrage innerhalb des Prolog-Interpreters starten.
Ja, Sie können jeden Texteditor verwenden, inkl. VIM. Sobald Sie eine Prolog-Quelldatei geschrieben haben, sagen wir file.pl
, können Sie es wie folgt in SWI-Prolog laden:
swipl -s file.pl
Dadurch wird Ihre Datei kompiliert und Sie gelangen zu einer interaktiven Shell, wo Sie dann Abfragen zu den Definitionen in Ihrer Datei stellen können.
Wenn Sie Ihr Prolog-Programm im Batch-Modus verwenden möchten, können Sie Folgendes verwenden:
swipl -s file.pl -t goal
wobei goal
ist das Ziel/die Abfrage, die Sie auswerten möchten. Beachten Sie, dass Sie in diesem Fall nicht die Möglichkeit haben, nach alternativen Lösungen zu fragen.
Auf Ubunutu habe ich angefangen, emacs zu verwenden, das zumindest Syntaxhervorhebung macht:
http://www.swi-prolog.org/FAQ/GnuEmacs.html
(2 Emacs-Vorschläge auf dieser Seite ^)
Aber jetzt benutze ich Prolog im Zorn, ich benutze ein Eclipse-Plugin namens PDT:
http://sewiki.iai.uni-bonn.de/research/pdt/docs/v2.1/start
Besonders nützlich ist das Zeile-für-Zeile-Debugging und -Trace in Echtzeit, sodass Sie einzelne Prädikate überspringen, Variablennamen überwachen usw. können, genau wie bei einer anderen echten IDE, die Sie in Eclipse finden würden.
Die Installation lohnt sich wahrscheinlich nur, wenn Sie es viel verwenden, da die Installation eine Menge Arbeit bedeutet, aber es ist eine großartige IDE.
Aber wenn Sie Ihre Low-Level-Editoren wie VIM mögen, müssen Sie die in swi-prolog integrierten Debug- und Trace-Tools verwenden, siehe:
http://www.swi-prolog.org/pldoc/man?section=debugger
Um herauszufinden, wie der seltsame und schöne Prolog-Interpreter funktioniert, ist die Verwendung einer Art Tracer ein Muss.