Deklarative Programmierung: Was statt Wie
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.
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.
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.
| Frage | Imperativ | Deklarativ |
|---|---|---|
| Schwerpunkt | Wie wird das Ziel erreicht? | Was soll gelten oder entstehen? |
| Ablauf | im Programm vorgegeben | dem Ausführungsverfahren überlassen |
| Abstraktion | konkrete Einzelschritte | Ergebnis oder Beziehungen |
Imperativ: Beschreibe den Weg. Deklarativ: Beschreibe das Ziel.
Wie wird aus dem Was ein Ergebnis?
Eine Zielbeschreibung allein genügt nicht. Zwei Voraussetzungen müssen erfüllt sein:
- Das Ziel muss klar genug beschrieben sein.
- Es muss ein System geben, das die Beschreibung auswerten und einen passenden Ausführungsweg finden kann.
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.
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.
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 .
Welche deklarativen Ansätze gibt es?
„Deklarativ“ ist ein Oberbegriff. Verschiedene Ansätze beschreiben unterschiedliche Arten von Wissen oder Berechnungen.
Constraint-Programmierung
Du gibst Constraints, also Bedingungen und Beziehungen, vor. Das System sucht Belegungen, die diese Bedingungen erfüllen.
Logische Programmierung
Du formulierst Fakten und Regeln. Eine Anfrage wird beantwortet, indem das System passende Schlussfolgerungen aus diesen Angaben ableitet.
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.
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.
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.
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.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- 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
Mit Google fortfahren