Direkt zur Hauptnavigation springen Direkt zum Inhalt springen Jump to sub navigation

Empfehungen zur Umsetzung des Themenbereiches "Logische Programmierung"

Empfehungen zur Umsetzung des Themenbereiches "Logische Programmierung"

Wie die Funktionale Programmierung beschäftigt sich auch die Logische Programmierung nicht mit der Abbildung eines Problems auf den sequentiellen Ablauf eines Programms. Vielmehr steht die Problemlösung im Mittelpunkt einer deklarativen Modellierung. Dies impliziert ein Programmier - Paradigma, das sich grundlegend vom imperativen Programmieren unterscheidet. Die Behandlung als Vertiefungsgebiet eröffnet in geeigneter Weise die Möglichkeit, dieses Paradigma im anschließenden Softwareprojekt fortzuführen und anzuwenden.

Mit PROLOG steht eine bewährte Programmiersprache zur Verfügung (siehe Anhang).

Logische Programmierung

Schwerpunkte

  • Wissensbasis aus Beschreibungen von Fakten und Regeln
  • Nachweis der Erfüllbarkeit oder Unerfüllbarkeit einer Menge von Klauseln
  • Lernfähigkeit eines Expertensystems

Fachinhalte

Kompetenzen

Vernetzungen

 Wissensbasis

  • Fakten,
  • Regeln,
  • Anfragen
  • rekursive Prädikate
  • Beschreibung von Objekten und ihren Eigenschaften in der Wissensbasis
  • Die prädikatenlogischen einfachen und komplexen Aussagen in Quellen der Logischen Programmierung darstellen und einordnen
  • Konsultation der Wissensbasis  und  Anfragen entwickeln und durchführen
  • Der Unterschied der Implementation zwischen  logischer und imperativer Programmiersprache wird deutlich.

Strategien der Problemlösung

  • Unifikation,
  • Resolution,
  • Backtracking,
  • Cut
  • Suchverfahren (Graphen, Breitensuche, Tiefensuche und Heuristische Suche)
  • Die wesentlichen Verfahren der PROLOG - Beweisführung benennen, einsetzen und vergleichen
  • Selbstmodifizierende Klauseln zur Problemlösung einsetzen
  • Effiziente und selbst lernende Programme schreiben zu können, eröffnet den Einblick in die Thematik der Künstlichen Intelligenz (siehe weiteres Vertiefungsgebiet).

Listen

  • Terme
  • rekursive Struktur von Listen
  • Kopf und Rest

 

  • Struktur von Listen erkennen und in Klauseln einsetzen
  • Datenrepräsentationen zwischen Argument- und Listenform entscheiden und implementieren
  • Die Unterschiede der Listenimplemen-tationen zwischen logischen und imperativen Programmier-sprachen werden deutlich.

Anwendung der Logischen Programmierung als Entwurfswerkzeug

Erste Prototypen für Anwendungs-programme aus den folgenden informatischen Kernthemen, z. B.:

  • Automaten
  • Turingmaschinen
  • Parser und Interpreter
  • maschinelle Sprachverarbeitung
  • Klärung des Automatenbegriffs und Modellierung in Prolog, insb. am Beispiel des Kellerautomaten Untersuchen einer Modellierung der Touring-Maschine
  • Analysieren der Syntax einer Spachbeschreibung durch ein Parser-Programm
  • maschinelle Verarbeitung natürlicher Sprache überprüfen
  • Computer-Linguistik: Einsicht in die Natur sprachlicher Kommunikation und in die Struktur der Sprache gewinnen (Deutsch und Fremdsprachen)

Redaktionell verantwortlich: