Informatik

Deklarative Programmierung: Was statt Wie

Deklarative Programmierung: Was statt Wie
Deklarative Programmierung: Was statt Wie
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Deklarative Programmierung beschreibt was gelten oder herauskommen soll. Wie dieses Ziel erreicht wird, entscheidet ein passendes Ausführungsverfahren – zum Beispiel eine Datenbank, ein Interpreter oder eine Laufzeitumgebung.

Auf dieser Seite lernst du, deklarative und imperative Formulierungen zu unterscheiden, Beispiele einzuordnen und Vor- sowie Nachteile begründet abzuwägen.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Was unterscheidet deklarativ und imperativ?

Stell dir vor, du fährst Taxi. „Zum Bahnhof, bitte“ nennt das Ziel. „An der nächsten Kreuzung links, dann geradeaus und danach rechts“ schreibt den Weg vor.

Definition

Deklarative Programmierung

Du beschreibst das gewünschte Ergebnis, gültige Beziehungen oder Bedingungen. Das zugrunde liegende System wählt die nötigen Ausführungsschritte.

Bei imperativer Programmierung formulierst du dagegen die Befehle und ihre Reihenfolge. Schleifen, Zuweisungen und veränderliche Variablen können den Ablauf ausdrücklich steuern.

FrageImperativDeklarativ
SchwerpunktWie wird das Ziel erreicht?Was soll gelten oder entstehen?
Ablaufim Programm vorgegebendem Ausführungsverfahren überlassen
Abstraktionkonkrete EinzelschritteErgebnis oder Beziehungen
Merke

Imperativ: Beschreibe den Weg. Deklarativ: Beschreibe das Ziel.

Teste dich
Frage 1 von 1LeichtWelche Anweisung ist in der Taxi-Analogie deklarativ?
Lösung: „Fahre mich zum Bahnhof.“ — Eine deklarative Aussage nennt das gewünschte Ergebnis, ohne den genauen Weg festzulegen.
Wie wird aus dem Was ein Ergebnis?

Eine Zielbeschreibung allein genügt nicht. Zwei Voraussetzungen müssen erfüllt sein:

  1. Das Ziel muss klar genug beschrieben sein.
  2. Es muss ein System geben, das die Beschreibung auswerten und einen passenden Ausführungsweg finden kann.
Beispiel

Die SQL-Abfrage SELECT * FROM teilnehmende verlangt alle Datensätze der Tabelle teilnehmende. Sie schreibt nicht vor, in welcher Reihenfolge Speicherbereiche durchsucht werden. Die Datenbank bestimmt den Abrufweg.

Auch beim Übernehmen der Werte aus einer Teilnehmerliste zeigt sich der Unterschied: Eine imperative Lösung legt eine leere Ergebnisliste an, durchläuft die Einträge und fügt jeden Namen einzeln hinzu. Eine deklarativere Formulierung wie array_values($teilnehmerListe) beschreibt kompakt, dass nur die Werte gebraucht werden. Die bereitgestellte Funktion übernimmt die Arbeitsschritte.

Gut zu wissen

Weil Ziel und Ausführung getrennt sind, kann das zugrunde liegende System später ein besseres Verfahren verwenden, ohne dass die Zielbeschreibung jeden neuen Einzelschritt nennen muss.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Ein deklaratives Programm beschreibt das . Den konkreten wählt das zugrunde liegende System. Dafür braucht es eine klare Zielspezifikation und ein .

Lösungen: Lücke 1: gewünschte Ergebnis; Lücke 2: Ausführungsweg; Lücke 3: geeignetes Ausführungsverfahren. Prüfe immer diese Kette: klares Ziel, geeignetes System, automatisch gewählter Weg.
Welche deklarativen Ansätze gibt es?

„Deklarativ“ ist ein Oberbegriff. Verschiedene Ansätze beschreiben unterschiedliche Arten von Wissen oder Berechnungen.

Definition

Constraint-Programmierung

Du gibst Constraints, also Bedingungen und Beziehungen, vor. Das System sucht Belegungen, die diese Bedingungen erfüllen.

Definition

Logische Programmierung

Du formulierst Fakten und Regeln. Eine Anfrage wird beantwortet, indem das System passende Schlussfolgerungen aus diesen Angaben ableitet.

Definition

Funktionale Programmierung

Berechnungen werden vor allem als Auswertung und Verknüpfung von Funktionen beschrieben. Rekursion, unveränderliche Daten und Funktionen höherer Ordnung sind wichtige Mittel.

SQL ist ein verbreitetes deklaratives Konzept für Datenbanken. Auch Annotationen oder Konfigurationssprachen können deklarative Angaben in ansonsten anders aufgebauten Programmen verwenden.

Merke

Die Grenzen sind nicht scharf. Viele Programmiersprachen und Anwendungen verbinden deklarative mit imperativen Elementen. Deshalb solltest du eine konkrete Formulierung untersuchen, statt nur den Namen der Sprache anzusehen.

Teste dich
Frage 1 von 1MittelEin Programm enthält eine SQL-Abfrage und danach eine ausdrücklich programmierte Schleife. Wie ordnest du es am besten ein?
Lösung: Es ist eine Mischform mit deklarativen und imperativen Elementen. — Untersuche die einzelnen Teile: Die Abfrage beschreibt ein gewünschtes Datenergebnis, die Schleife steuert einen Ablauf.
Wann hilft der Ansatz – und wo liegen Grenzen?

Deklarative Formulierungen können kurz und prägnant sein. Auf hohem Abstraktionsniveau konzentrierst du dich auf das Problem, während das System die Ausführung übernimmt. Das kann Optimierung, Wartung des Ausführungsverfahrens und schnelles Prototyping erleichtern.

Kurz bedeutet aber nicht automatisch leicht verständlich. Stark verschachtelte Ausdrücke können schwer zu warten sein. Ein allgemeines Ausführungsverfahren kann außerdem Besonderheiten eines einzelnen Anwendungsfalls übersehen.

Mischformen sind oft praktisch, können aber unübersichtlich werden, wenn nicht mehr erkennbar ist, welcher Teil Ziel und welcher Teil Ablauf beschreibt. Auch das Denken vom Zielzustand aus kann anfangs ungewohnt sein.

Gut zu wissen

Ein deklarativer Ansatz passt besonders gut, wenn das gewünschte Ergebnis klar spezifiziert werden kann und ein geeignetes Ausführungsverfahren vorhanden ist. Er ist keine automatische Lösung für jeden Anwendungsfall.

Teste dich
Frage 1 von 2SchwerEin Team braucht für einen Sonderfall eine genau festgelegte Reihenfolge von Hardware-Schritten. Was ist die beste Beurteilung?
Lösung: Eine imperative Beschreibung kann hier geeigneter sein, weil die Reihenfolge selbst Teil der Anforderung ist. — Entscheidend ist, ob nur das Ergebnis zählt oder ob der konkrete Ablauf zur Aufgabe gehört.
Frage 2 von 2SchwerEin deklarativer Ausdruck ist sehr kurz, aber stark verschachtelt. Welche Aussage trifft zu?
Lösung: Er kann kompakt sein und trotzdem die Wartung erschweren. — Höhere Abstraktion ermöglicht kompakte Lösungen, kann aber bei komplexer Verschachtelung die Lesbarkeit mindern.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Deklarative Programmierung
    • Kernidee: Was statt Wie
    • Voraussetzung: klares Ziel
    • Voraussetzung: geeignetes Ausführungsverfahren
    • Ansätze: Constraints, Logik und Funktionen
    • Anwendungen: SQL, Annotationen und Konfiguration
    • Stärke: Abstraktion und Optimierbarkeit
    • Grenze: Verständlichkeit und Sonderfälle
    • Praxis: häufige Mischformen
Abschluss-Check
Teste dich
Frage 1 von 4LeichtWoran erkennst du eine deklarative Formulierung zuerst?
Lösung: Sie beschreibt ein Ziel, Ergebnis oder gültige Beziehungen. — Frage zuerst: Wird das Was beschrieben oder das Wie festgelegt?
Frage 2 von 4MittelWarum ist SELECT * FROM teilnehmende deklarativ?
Lösung: Die Abfrage fordert ein Datenergebnis an, während die Datenbank den Abrufweg bestimmt. — Nicht die Länge ist entscheidend, sondern die Trennung zwischen gewünschtem Ergebnis und Ausführung.
Frage 3 von 4SchwerEin System soll eine Zielbeschreibung später mit einem verbesserten Verfahren ausführen. Welche Eigenschaft macht das möglich?
Lösung: Zielbeschreibung und Ausführungsweg sind voneinander getrennt. — Ein klares Ziel kann bestehen bleiben, während das zugrunde liegende System den Weg optimiert.
Frage 4 von 4SchwerWann solltest du die Bezeichnung „deklarativ“ nicht allein aus dem Namen einer Programmiersprache ableiten?
Lösung: Wenn ein Programm verschiedene Paradigmen und Sprachmittel kombiniert. — Viele reale Programme sind Mischformen. Ordne deshalb konkrete Programmteile nach ihrer Funktion ein.

Passend dazu