Modulinformationssystem Informatik

 

Logikprogrammierung URL PDF XML

Modulcode: MS0305
Englische Bezeichnung: Logic Programming
Modulverantwortliche(r): Prof. Dr. Michael Hanus
Turnus: unregelmäßig (SS06)
Präsenzzeiten: 4V 2Ü
ECTS: 8
Workload: 240 Std.
Dauer: ein Semester
Modulkategorien: IG (Sonstige) TG (Sonstige) MV (Sonstige)
Lehrsprache: Deutsch
Voraussetzungen: Info

Kurzfassung:

In dieser Vorlesung werden sowohl die Grundlagen der Logikprogrammierung als auch wichtige Programmiertechniken behandelt. Darüberhinaus wird eine Einführung in die heute verwendeten Implementierungstechniken gegeben, die es ermöglichen, Logikprogramme mit einer ähnlichen Effizienz wie klassische imperative Programme ablaufen zu lassen. Im Einzelnen werden behandelt: Einführung in Prolog, elementare logische Programmiertechniken, Grundlagen der Logikprogrammierung (deklarative Semantik, Unifikation, SLD-Resolution), nichtdeklarative Bestandteile von Prolog, fortgeschrittene Programmiertechniken, Erweiterungen von Prolog (Constraints, Nebenl"aufigkeit), Grundlagen der Implementierung von Logiksprachen

Lernziele:

In diesem Modul werden die Studierenden mit dem Paradigma der Logikprogrammierung vertraut gemacht. Sie erwerben die Fähigkeit, logische Programmiertechniken für verschiedene Anwendungsprobleme adäquat einzusetzen. Außerdem werden sie mit den Techniken zur Implementierung logischer Programmiersprachen vertraut gemacht und können dadurch die erstellten Programme bezüglich ihres Laufzeitbedarfs beurteilen beziehungsweise angemessen optimieren.

Lehrinhalte:

Die Logikprogrammierung ist ein Ansatz, Software auf einem sehr hohen Abstraktionsniveau zu entwickeln. Im Gegensatz zu imperativen (und auch funktionalen) Sprachen muss bei der Logikprogrammierung nur das zu lösende Problem beschrieben werden - die Lösungsfindung selbst ist Aufgabe der Implementierung der jeweiligen logischen Programmiersprache. Somit stehen dem Programmierer direkt Techniken zur Lösungssuche zur Verfügung. Außerdem kann er mit partiellen Informationen arbeiten, d.h. er kann lediglich Bedingungen angeben, unter denen eine Lösung gefunden werden soll. Aus diesem Grund wird die Logikprogrammierung in vielen Anwendungsbereichen eingesetzt, wie z.B. (deduktive) Datenbanken, Expertensysteme, Theorembeweiser, künstliche Intelligenz, Planungs- und Optimierungsprobleme (Operations Research) u.v.m. In dieser Vorlesung werden sowohl die Grundlagen der Logikprogrammierung als auch wichtige Programmiertechniken behandelt. Darüberhinaus wird eine Einführung in die heute verwendeten Implementierungstechniken gegeben, die es ermöglichen, Logikprogramme mit einer ähnlichen Effizienz wie klassische imperative Programme ablaufen zu lassen.

Weitere Voraussetzungen:

Prüfungsleistung:

Abschlussprüfung nach Ende der Vorlesung

Lehr- und Lernmethoden:

Verwendbarkeit:

Literatur:

  • M. Hanus: Problemlösen mit Prolog, 2. Aufl., Teubner, 1987
  • L. Sterling, E. Shapiro: The Art of Prolog, 2nd Ed., MIT Press, 1994
  • U. Schöning: Logik für Informatiker, 2. Aufl., Bibl. Inst. 1989
  • J.W. Lloyd: Foundations of Logic Programming, 2nd Ed., Springer 1987
  • H. Aït-Kaci: Warren's Abstract Machine, MIT Press, 1991
  • P. Deransart, A. Ed-Dbali, L. Cervoni: Prolog: The Standard, Springer 1996
  • K. Marriott, P.J. Stuckey: Programming with Constraints: An Introduction, MIT Press, 1998

Verweise:

Kommentar: