Information Technology Reference
In-Depth Information
On sentences which are true of direct unions of algebras führte
er die nach ihm benannte Horn-Formel ein, welche später die
Grundlage für die logische Programmierung bildete.
Im Prinzip gibt es drei Arten von Horn-Klauseln:
1. Ziel-Klauseln
Ziel-Klauseln besitzen kein positives Literal, d. h. sie sind
von der Form
Diese Speziikationen zusammen ergeben das „logische“
Programm. An dieses Programm kann man nun mit „?“-Fra-
gen stellen. Das Programm versucht, aus diesen Speziikati-
onen eine Antwort auf die Frage abzuleiten.
Möchte man z. B. wissen, wer der Großvater von Joseph
ist, so gibt man die Frage
?− Großvater(X, Joseph).
x 1 x 2 ∧ … ∧ x n 0
ein. Das Programm antwortet mit
und bedeuten, dass die x 1 , x 2, … , x n nicht alle wahr sind.
2. Deinite Horn-Klauseln
Deinite Horn-Klauseln besitzen genau ein positives Lite-
ral, d. h. sie sind von der Form
X = Isaak,
d. h., es hat aus den Speziikationen abgeleitet, dass Isaak der
Großvater von Joseph ist.
Eine der frühesten und bis heute bekanntesten Vertreter der
logischen Programmiersprachen ist PROLOG.
x 1 x 2 ∧ … ∧ x n y
und bedeuten, dass wenn die x 1 , x 2, … , x n wahr sind, dann
ist auch y wahr.
3. Keine negativen Literale
Diese Klauseln sind von der Form
PROLOG Der Name PROLOG steht für die französische
Bezeichnung „ Pro grammation en Log ique“ (zu Deutsch:
„Programmieren in Logik“). Die Sprache wurde Anfang der
1970er-Jahre in Marseille von einem Team unter der Führung
von Alain Colmerauer entwickelt ( Abb. 2.26 ).
1 y oder einfach y
Abb. 2.26 Alain Colmerauer
und bedeuten, dass y immer wahr ist.
Zur Demonstration der logischen Programmierung seien
Verwandtschaftsbeziehungen gewählt:
Zunächst wird für konkrete Personen ihr Geschlecht spe-
ziiziert:
Mann(Abraham).
Mann(Isaak).
Mann(Joseph).
Mann(Jakob).
Frau(Sarah).
Danach werden für diese Personen Vaterschafts- und Mut-
terschaftsbeziehungen speziiziert:
Alain Marie Albert Colmerauer wurde am 24. Januar 1942
in Carcassonne, Frankreich, geboren. Er studierte ab dem
Jahre 1963 an der École nationale supérieure d'informatique
et de mathématiques appliquées de Grenoble, wo er 1967 mit
der Disser tation Precedences, analyse syntaxique et langua-
ges de programmation im Fach Informatik promovierte. Nach
einem dreijährigen Aufenthalt in Kanada arbeitete er ab dem
Jahre 1970 an der Universität Aix-Marseille. Im Jahre 1986
wurde er zum Ritter der Ehrenlegion geschlagen.
Das erste PROLOG-System war 1972 fertig entwickelt,
wobei Phillipe Roussel bei der Implementierung maßgeblich
beteiligt war.
Es entstanden daraufhin weltweit eine Reihe von weiteren
Implementierungen, die alle auf der Basis von Interpretern
beruhten. Den ersten PROLOG-Übersetzer entwickelte David
H. D. Warren in Edinburgh. Die Syntax dieser PROLOG-Va-
riante setzte sich bald als Quasistandard durch. Er war jedoch
Vater(Abraham, Isaac).
Vater(Isaak, Jakob).
Vater(Jakob, Joseph).
Mutter(Sarah, Isaac).
Zum Schluss wird allgemein, also unabhängig von kon-
kreten Personen, speziiziert, welche generelle Eigenschaf-
ten Söhne, Töchter, Großväter väterlicherseits und Großväter
mütter licherseits besitzen:
Sohn(X,Y) :− Vater(Y,X), Mann(X).
Tochter(X,Y) :− VaterY,X), Frau(X).
Großvater(X,Y) :− Vater(X,Z), Vater(Z,Y).
Großvater(X,Y) :− Vater(X,Z), Mutter(Z,Y).
 
 
 
Search WWH ::




Custom Search