Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Huncberct Wurl Geändert vor über 10 Jahren
1
Syntax von Prolog & Familiendatenbasis
Prolog Grundkurs WS 99/00 Christof Rumpf
2
GK Prolog - Syntax, Familiendatenbasis
Syntax von Prolog Die Syntax von Prolog beschreibt die Menge der wohlgeformten Ausdrücke in Prolog. Wir kennen bereits einige grundlegende Konzepte wie Fakten, Regeln, Klauseln, Anfagen, Prädikate, Argumente, Variablen, Funktoren, ... GK Prolog - Syntax, Familiendatenbasis
3
GK Prolog - Syntax, Familiendatenbasis
Terme Die grundlegende Datenstruktur in Prolog ist der Term. Terme werden aus ASCII-Zeichen gebildet. A B C ... X Y Z Großbuchstaben a b c ... x y z Kleinbuchstaben Ziffern + - * / \ ^ [ ] Sonderzeichen ( ) ~ : . ? , ; GK Prolog - Syntax, Familiendatenbasis
4
GK Prolog - Syntax, Familiendatenbasis
Sorten von Termen Terme einfach zusammengesetzt Atome Zahlen Variablen Strukturen Listen (Prädikate) Integers Reals GK Prolog - Syntax, Familiendatenbasis
5
wir sind vier atome ichBinAtomNr5 ich_bin_atom_frieda
Atome sind Zeichenfolgen, die mit einem Kleinbuchstaben beginnen. Der Rest eines Atoms kann aus Klein- oder Großbuchstaben und Ziffern bestehen, aber keine Sonderzeichen außer „_“ (Unterstrich) enthalten. wir sind vier atome ichBinAtomNr5 ich_bin_atom_frieda GK Prolog - Syntax, Familiendatenbasis
6
GK Prolog - Syntax, Familiendatenbasis
Hochkommata Durch einfache Hochkommata kann man beliebige Zeichenfolgen „zwangsatomisieren“. `Ich bin ein Atom.` `0815` GK Prolog - Syntax, Familiendatenbasis
7
_ich_bin_eine_Variable
Variablen Variablen sind Zeichenfolgen, die mit einem Großbuchstaben oder „_“ beginnen. Bis auf nicht vorhandene Zwangsvariabilisierung gilt für den Rest das gleiche wie für Atome. X Fritz _ich_bin_eine_Variable GK Prolog - Syntax, Familiendatenbasis
8
GK Prolog - Syntax, Familiendatenbasis
Variablenidentität Die anonyme Variable besteht lediglich aus einem Zeichen: „_“ (Unterstrich). Im Gegensatz zu anderen Variablen kann man mit anonymen Variablen keine Variablengleichheit erzielen. liebt(X,Y). nicht notwendigerweise gleich liebt(X,X). notwendigerweise gleich liebt(_,_). nicht notwendigerweise gleich GK Prolog - Syntax, Familiendatenbasis
9
GK Prolog - Syntax, Familiendatenbasis
Interne Variablen Arity Prolog 6.1 verwendet intern eine standardisierte Darstellung für Variablen: 4-stellige Hexadezimalzahlen mit führendem Unterstrich. ?- X = Y. X = _0F5A Y = _0F5A yes GK Prolog - Syntax, Familiendatenbasis
10
GK Prolog - Syntax, Familiendatenbasis
Zahlen Integers (Ganze Zahlen) -2487 -1 3 455 Reals (Fließkommazahlen) 1.34 0.0 .5 e25 GK Prolog - Syntax, Familiendatenbasis
11
GK Prolog - Syntax, Familiendatenbasis
Strukturen Strukturen sind zusammengesetzte Terme und bestehen aus Funktor und einer Folge von Argumenten, die in Klammern eingeschlossen und durch Kommata getrennt werden. funktor(Arg1,..., Argn) Funktoren sind Atome, Argumente sind Terme. GK Prolog - Syntax, Familiendatenbasis
12
GK Prolog - Syntax, Familiendatenbasis
Beispiel-Strukturen mensch(sokrates) student(name(vorname(berti), nachname(vogts)), matrikelnr(4711)) GK Prolog - Syntax, Familiendatenbasis
13
GK Prolog - Syntax, Familiendatenbasis
Operatoren Die Funktoren von 1- oder 2-stelligen Strukturen können auch als Operatoren definiert sein. Beispiele: a :- b :- Infixoperator :-(a,b) a Postfixoperator (a) Präfixoperator (235) GK Prolog - Syntax, Familiendatenbasis
14
GK Prolog - Syntax, Familiendatenbasis
Fakten Fakten sind Prädikate, die mit einem Punkt abgeschlossen sind. Der Funktor darf nicht „:-“ sein. mensch(sokrates) mensch(sokrates). GK Prolog - Syntax, Familiendatenbasis
15
GK Prolog - Syntax, Familiendatenbasis
Regeln Regeln sind 2-stellige Prädikate mit dem Funktor „:-“, die mit einem Punkt abgeschlossen sind. Das erste Argument (Head) ist ein Prädikat. Das zweite Argument (Body) ist ein Prädikat oder eine Disjunktion oder Konjunktion von Prädikaten. Es handelt sich bei :-/2 um ein vordefiniertes Prädikat (builtin), das eine besondere Interpretation hat. GK Prolog - Syntax, Familiendatenbasis
16
GK Prolog - Syntax, Familiendatenbasis
Programme Programme in Prolog sind Mengen von Klauseln. Klauseln Fakten Regeln GK Prolog - Syntax, Familiendatenbasis
17
Familiendatenbasis Verwandtschaftsbeziehungen als Anwendungsfeld für Relationen mit verschiedenen Eigenschaften.
18
GK Prolog - Syntax, Familiendatenbasis
Ein Stammbaum terachm sarahf abrahamm nachorm haranm isaacm milcahf lotm yiscahf GK Prolog - Syntax, Familiendatenbasis
19
Prolog-Repräsentation
Elternteile et(terach,abraham). et(terach,nachor). et(terach,haran). et(sarah,isaac). et(abraham,isaac). et(haran,milcah). et(haran,lot). et(haran,yiscah). Geschlecht fem(sarah). fem(milcah). fem(yiscah). masc(terach). masc(abraham). masc(nachor). masc(haran). masc(isaac). masc(lot). GK Prolog - Syntax, Familiendatenbasis
20
GK Prolog - Syntax, Familiendatenbasis
Direkte Beziehungen Vater, Mutter vater(X,Y):- et(X,Y), masc(X). mutter(X,Y):- et(X,Y), fem(X). Sohn, Tochter sohn(X,Y):- et(Y,X), masc(X). tochter(X,Y):- et(Y,X), fem(X). GK Prolog - Syntax, Familiendatenbasis
21
Indirekte Beziehungen
Großvater großvater(X,Y):- vater(X,Z), et(Z,Y). Bereits definierte Relation vater/2 kann wiederverwendet werden. Eine dritte Person Z wird benötigt, um die Beziehung zu vermitteln. GK Prolog - Syntax, Familiendatenbasis
22
GK Prolog - Syntax, Familiendatenbasis
Rekursion Vorfahr vorfahr(X,Y):- et(X,Y). vorfahr(X,Y):- et(X,Z), vorfahr(Z,Y). Das rekursive Prädikat vorfahr/2 berechnet die transitive Hülle des Graphen, der durch das Prädikat et/2 induziert wird. GK Prolog - Syntax, Familiendatenbasis
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.