Kurz: Logikprogrammierung mit Fakten, Regeln und Suche.
Genauer: Prolog wird eingesetzt für Künstliche Intelligenz, Expertensysteme, Sprachverarbeitung, Constraint-Probleme und Wissensdatenbanken. Prolog (Programmation en logique, 1972, Alain Colmerauer) ist eine deklarative Sprache: Du beschreibst was gilt (Fakten und Regeln), nicht wie es berechnet wird. Anschließend stellst du Anfragen, und Prolog sucht durch Unifikation und Backtracking alle Lösungen.
Steckbrief
| Eigenschaft | Wert |
|---|---|
| Erschienen | 1972 |
| Entwickelt von | Alain Colmerauer, Robert Kowalski |
| Paradigmen | logisch, deklarativ |
| Typisierung | dynamisch |
| Ausführung | Interpreter (WAM, SWI-Prolog) |
| Paketverwaltung | SWI-Prolog Packs |
| Dateiendung | .pl, .pro |
| Sprachfamilie | Logik- und Datenbanksprachen |
Einsatzgebiete
Künstliche Intelligenz, Expertensysteme, Sprachverarbeitung, Constraint-Probleme und Wissensdatenbanken.
So führst du Code aus
Datei hallo.pl speichern und mit swipl -q -g main -t halt hallo.pl ausführen (SWI-Prolog von swi-prolog.org).
Das erste Programm
main :-
write('Hallo, Welt!'), nl,
X is 1 + 2,
format("1 + 2 = ~w~n", [X]),
print(42), nl,
format("~a hat ~d Punkte~n", [mia, 17]).Ausgabe:
Hallo, Welt!
1 + 2 = 3
42
mia hat 17 PunkteDer Kurs: 8 Kapitel
Jedes Kapitel enthält geprüfte Beispiele mit echter Ausgabe, Merksätze, eine Übungsaufgabe und ein Quiz. Zum Üben mit Fortschrittsanzeige, Abzeichen und Zertifikat: Prolog-Kurs auf der Lernseite.
- Einführung und erstes Programm
- Arithmetik und Vergleiche
- Listen und rekursive Strukturen
- Backtracking, Cut und Kontrolle
- Klassische Probleme lösen
- DCG, Grammatiken und Sprachverarbeitung
- Module, Ein-/Ausgabe und Ökosystem
- Referenz und Spickzettel
Ähnliche Sprachen
- SQL: Die Sprache für Datenbanken
- Haskell: Rein funktional, streng typisiert, elegant
- Common Lisp: Die programmierbare Programmiersprache mit Makros
Siehe auch
Programmiersprachen im Überblick, Sprachen im Vergleich, Zeitstrahl der Programmiersprachen, Programmierparadigmen, Kompiliert oder interpretiert?