EMZETT.
Login

Kurz: Ein Programmierparadigma ist ein grundlegender Denk- und Strukturierungsstil für Programme – etwa imperativ („tue dies, dann das“), objektorientiert („Objekte mit Daten und Verhalten“), funktional („Funktionen auf Werte anwenden“) oder logisch („beschreibe Fakten und Regeln“).

Genauer: Die meisten modernen Sprachen sind multiparadigmatisch: Python, Kotlin, Scala oder Rust mischen mehrere Stile. Das Paradigma bestimmt, wie man ein Problem zerlegt und welche Fehlerarten häufig sind – vergleichbar mit der Wahl zwischen Bauplan, Rezept und Regelwerk.

Paradigmen und ihre Sprachen

Im Detail

Imperativ und prozedural

Das Programm besteht aus Anweisungen, die den Zustand (Variablen, Speicher) Schritt für Schritt verändern. Wiederverwendung entsteht durch Prozeduren und Funktionen. Typische Vertreter: C, Pascal, Fortran, COBOL, Bash. Stärken: nah an der Hardware, leicht zu verstehen. Schwächen: veränderlicher Zustand führt in großen Programmen schnell zu schwer nachvollziehbaren Abhängigkeiten.

Objektorientiert

Daten und zugehörige Operationen werden zu Objekten gebündelt (Kapselung), die über Schnittstellen miteinander sprechen. Klassen, Vererbung und Polymorphie strukturieren große Systeme. Typisch: Java, C#, C++, Swift, Ruby. Ein Sonderfall ist die prototypbasierte OOP in JavaScript und Lua.

Funktional

Berechnung ist die Auswertung von Funktionen; Daten sind (meist) unveränderlich, Funktionen sind Werte und lassen sich übergeben und zusammensetzen. Das erleichtert Tests und Nebenläufigkeit. Typisch: Haskell (rein funktional), OCaml, F#, Elixir, Erlang, Scheme, Racket, Common Lisp. Funktionale Elemente (map, filter, Lambda) stecken heute in fast jeder Sprache.

Logisch und deklarativ

Man beschreibt was gilt, nicht wie es berechnet wird; die Laufzeit sucht die Lösung. Prolog arbeitet mit Fakten, Regeln und Backtracking; SQL beschreibt gewünschte Datenmengen; HTML und CSS beschreiben Struktur und Aussehen. Vorteil: sehr kurz für Suchprobleme und Abfragen.

Nebenläufig und Actor-Modell

Viele unabhängige Abläufe laufen gleichzeitig und tauschen Nachrichten aus, statt Speicher zu teilen. Erlang und Elixir bauen darauf fehlertolerante Systeme; Go nutzt Goroutinen und Kanäle, Ada Tasks mit Rendezvous.

Datengetrieben und Muster–Aktion

AWK verarbeitet Eingabezeilen mit Mustern und Aktionen; SQL und Tabellenkalkulationen sind ebenfalls datengetrieben.

Metaprogrammierung

Programme erzeugen oder verändern Programme: Makros in Lisp, Racket, Nim und Rust, Templates in C++, Reflektion in Java und Groovy.

Welches Paradigma wofür?

ProblemPassender Stil
Kleine Skripte, Automatisierungimperativ/prozedural
Große Anwendungen mit vielen Rollenobjektorientiert
Datenumwandlung, Pipelines, Parallelitätfunktional
Regelsysteme, Suchproblemelogisch/deklarativ
Hochverfügbare DiensteActor-Modell

Siehe auch: Typsysteme, Programmiersprachen im Überblick, Sprachen im Vergleich