Startseite
Über Mich
AHP4
Galerie
Sehschlangen
Tourenbuch
Bookmarks
Elektronik
Bewertung
Geschichten

ProPra - PROLOG - Quiz SS 98


Prüfer: Carsten Hörner, Mitarbeiter am IfI

Prüfling: Jens Köhler
Datum: 16.06.98
Uhrzeit: 15:1o
Prüfungsdauer: 20 Minuten
Note: keine, aber bestanden
Versuch: #1

Zuerst versetzt mich der Prüfer in die Situation, ich solle einem Ahnungslosen Neuling erklären, was PROLOG sei.
  • PROLOG heißt PROgramming in LOGic
  • PROLOG besitzt eine Wissensbasis und ermöglicht dem Benutzer, Anfragen an diese Wissensbasis zu stellen.
  • Prädikate ordnen dem kartesischen Produkt von 0 bis n Variablen ein Resultat TRUE oder FALSE zu.
  • Prädikate bestehen aus Fakten und Regeln.
  • Regeln bestehen aus Teilzielen
Nun wird kurz auf die Unifikation eingegangen, die ich dann erklären mußte. Danach sollen die Vorgäge einer Anfrage genauer erläutert werden. Als Anschauungsobjekt wird mir folgendes vorgelegt:
bla(5).

?- bla(Vier).
Nach erfolgter Erklärung wird das Beispiel folgendermaßen abgewandelt:
bla(5).

?- bla(4).
Man sollte erklären können, warum hier no. zurückgegeben wird. Kurz wird noch auf die anonyme Variable _ eingegangen.

Es folgen nun einige Ausführungen zum Thema Backtracking und Cut.

  • Ausführung von Regeln erfolgt von oben nach unten
  • erfolgreiche Teilziele mit Unifikation hinterlassen Choice Points
  • Backtracking geht von unten nach oben zum nächsten Choice Point.
  • Nach dem Backtracking werden alle unterhalb eines Choice Points belegten Variablen wieder frei
  • Cut gibt beim Durchlauf von oben nach unten TRUE zurück, sonst geschieht nichts.
  • Stößt PROLOG beim Backtracking auf einen Cut (!), so verwirft es sofort alle Alternativen des gesamten Prädikates.
  • faillöst führt Backtracking herbei, fail gibt immer FALSE zurück.
  • Cut-Fail-Kombination verhindert weiteres Backtracking und verläßt das entsprechende Prädikat mit FALSE.
Der Prüfer vergleicht nun Prolog mit anderen Programmiersprachen (C, Pascal usw.). Regeln können als Prozeduren angesehen werden. Aber was unterscheidet PROLOG grundsätzlich von den Compiler-Sprachen?
  • Prolog kann während eines laufenden Programms seine Wissensbasis mit den Prädikaten assert und retract verändern.
  • Dies ermöglicht selbstmodifizierende Programme => KI
Zu guter Letzt wird noch gefragt, wie sich Schleifen in PROLOG erzeugen lassen, dabei wird auch kurz auf arithmetische Ausdrücke eingegangen. Was macht der Ausdruck I is (I + 1).?
  • Durch Rekursion
  • Durch das Prädikat repeat

Letzte Änderung : 22-Aug-2023
Copyright Jens Köhler, Wolfsburg, Obere Dorfstraße 10d