Von Java zu Prolog

Hallo!

Ich hab mit Java programmieren gelernt, meine Kenntnisse würde ich als relativ gut bezeichnen. Jetzt hab ich schon einiges über Prolog gelesen und bin immer mehr fasziniert davon, so dass ich es gerne mal ausprobieren würde.
Wie fange ich jetzt also am besten mit Prolog an? Tutorials lesen und so ist schon klar, aber gibt es dafür auch IDEs so wie etwa Eclipse für Java und wie sieht es mit Compilern aus, gibt es da verschiedene, wenn ja, welche sind zu empfehlen usw.
Die absoluten Basics für den Einstieg und zur Herstellung einer einsatzfähigen Programmierumgebung würden mich halt interessieren.
Danke schonmal jetzt für eure Tipps!

LG
Daniel

ich glaube du hast da etwas seltsame Erwartungen an Prolog

Prolog ist eine funktionale Interpretersprache mit gerade mal einer Hand voll Syntax. Alles was es da groß zu lernen gibt, kannst du in ner halben Stunde durch Wikipedia lernen und der Rest ist Anwendung.
Compiler gibt es da auch nicht, da man mit Prolog keine ausführbaren Programme erstellen, sondern nur Aussagen auf ihren Wahrheitsgehalt auswerten kann.

Ich hab vor Jahren auch mal Prolog gelernt und muss sagen, wirklich interessant wird es erst, wenn du in einem „normalen“ Programm logische Aussagen auswerten willst.

Das ist nicht ganz richtig.
Auch Prolog ist eine universelle Programmiersprache, mit der man eigentlich alles machen kann.
Es gibt auch dafür Pakete für grafische Oberflächen und jeden Mist den man so brauchen kann
Aber wer macht sowas schon in Prolog ^^
Prolog ist ausserdem keine funktionale, sondern eine logische Programmiersprache.
Sie hat also denkbar wenig mit Java gemeinsam.
Man muss völlig umdenken.
In Java „sagt man der Maschine wie sie schrittweise etwas tun soll“
In Prolog „sagt man der Maschine nur was es für Fakten und Regeln gibt. Darauf kann man der Maschine eine Frage stellen und sie findet eine oder mehrere Antworten, die diesen Fakten und Regeln entsprechen. Auf das ‚WIE‘ hast du jedoch keinen Einfluss.“
Man formuliert also in Prolog keine Algorithmen,
sondern Prolog benutzt einen Universalalgorithmus namens „Backtracking“ der auf all deine Fragen Antworten in den gegebenen Fakten und Regeln findet.
Der Nachteil ist, dass dieser Universalalgorithmus nicht unbedingt so effizient ist, wie ein selbstgeschriebener angepaster Algo.
Dennoch ist diese Herangehensweise sehr interessant und es gibt durchaus einige Probleme die sich in Prolog viel einfacher als in Java lösen lassen.(wenn effizienz keine Rolle spielt)

Gruß
VoidZer0

Ganz vergessen deine anderen Fragen zu beantworten:

Ich selbst habe als IDE früher immer SWI-Prolog (http://www.swi-prolog.org/) verwendet und ich glaube das ist seit Ewigkeiten die verbreitetste IDE für Prolog überhaupt und sie wird regelmäßig weiter entwickelt.

Also was Tutoriale angeht kann ich leider nichts empfehlen.
Ich habe es damals an der Uni in einer Vorlesung mit Skript gelernt
aber es gibt sicher bessere Tutoriale.
Vielleicht ist hier was dabei:
http://www.thefreecountry.com/documentation/onlinepr…

ok danke für die Aufklärung
dann entschuldige ich mich dafür, Blödsinn erzählt zu haben

hatte schon des öfteren mit Prolog zu tun, aber ich hab noch nie davon gehört, dass man solche Erweiterungen nutzen kann

Also „Blödsinn“ hätte ichs nicht gennant, es war nur nicht ganz exakt :wink:
und das was du gesagt hast ist das was die meisten Leute über Prolog lernen, wenn sie mal damit in Berührung kommen.
Denn es geht ja eigentlich darum das grundlegende Paradigma logischer Programmiersprachen zu verstehen
und das ist eben etwas ganz anderes als das imperative oder das funktionale Paradigma.
Das man damit noch mehr machen kann ist für dieses Verständnis auch nicht wichtig.
und ich kenne auch niemanden der ernsthaft größere GUI-Anwendungen mit Prolog schreibt.
(Das Paket dafür heist übrigens XPC - http://www.swi-prolog.org/packages/xpce/)
Wollte es nur der vollständigkeithalber erwähnen aber nicht behaupten, dass man sich damit unbedingt beschäftigen müsste :smiley:

Danke für deine Antwort.

wirklich interessant wird es erst, wenn du in einem „normalen“
Programm logische Aussagen auswerten willst.

Wie meinst du das, so dass ich einfach von einem beliebigen anderen Programm (z.B. eben von Java aus) auf Prolog zugreife und Prolog dann eben „die Arbeit macht“, hab ich das richtig verstanden?

Danke euch allen für die Hilfe! o.T.