Paradigma

Was ist ein Paradigma? Und warum schon wieder so ein Fremdwort? Ich habe den Text hier etwas ergänzt.

Ursprüngliche Quelle des folgenden Textes: Klick mich!

Programmierparadigmen sind verschiedene grundlegende Ansätze und Techniken für die Programmierung von Software. Darunter fallen z. B. auch das objektorientierte oder funktionale Programmierparadigma.

 

Arbeitet eine Software nach und nach Anweisungen ab, wurde sie nach dem Paradigma der imperativen Programmierung erstellt.

 

Ein Programmierparadigma beschreibt den grundlegenden Stil, in dem ein Programm entworfen wird. Es gibt vor, welche Prinzipien angewandt und welche Herangehensweisen genutzt werden.

Die meisten Programmiersprachen sind in der Lage, mit verschiedenen Programmierparadigmen parallel zu arbeiten. Es ist also nicht zwingend notwendig, dass sich Programmierer fest auf ein Programmierparadigma festlegen und im gesamten Code daran festhalten.

Stattdessen kann im Einzelfall entschieden werden, welche Vorgehensweise akut die beste Option ist. Programmierparadigmen lassen sich den zunächst einmal zwei übergeordneten Gruppen zuordnen: imperative Programmierung und deklarative Programmierung.

 

Imperative Programmierung

Dieses Programmierparadigma gibt vor, dass ein Programm eine Folge von Anweisungen ist. Der Programmcode gibt also bei diesen Paradigmen eine Abfolge von Befehlen vor und teilt dem Rechner auf diese Weise mit, in welcher Reihenfolge welche Operationen abzulaufen haben, damit das erwartete Ergebnis erreicht wird.

 

 

Dem Programmierer stehen verschiedenste Kontrollstrukturen (z. B. Schleife) zur Verfügung, um diese Befehle zu entwerfen. Die imperative Programmierung existiert schon seit den Anfängen der Programmierung und bildet z. B. auch die Grundlage für Ada, das klassische BASIC, COBOL oder Pascal. Auch C sowie viele objektorientierte Sprachen wie C++, C# und Java sind auf die imperative Programmierung ausgelegt.

Wenn ein Programm z. B. alle ungeraden Zahlen aus einer Liste ausgeben soll, müsste der Programmierer hierfür genau angeben, dass in einer Schleife durch die Liste gegangen werden soll, um jeden einzelnen Eintrag zu prüfen und entsprechend zu verarbeiten.

Beispiele für untergeordnete Programmierparadigmen:

  • strukturierte Programmierung
  • objektorientierte Programmierung (C++; Java)
  • modulare Programmierung

 

Deklarative Programmierung

Dieses übergeordnete Programmierparadigma ist in gewisser Weise der Gegenentwurf zur imperativen Programmierung. Statt einer Folge von Anweisungen, also dem Wie, wird bei der deklarativen Programmierung der Fokus auf das Was gelegt: Was ist das Problem bzw., was soll das Ergebnis sein?

Der Lösungsweg an sich wird dabei nicht Schritt für Schritt vorgegeben. Ein Programm könnte z. B. eine Menge Daten untersuchen und alle Elemente ausgeben, die nicht dem vordefinierten Schema XY entsprechen. In dem Fall würde ein Programmierer das gewünschte Schema definieren, nicht aber den Vorgang des Prüfens exakt ausformulieren.

Beispiele für Programmiersprachen, die auf deklarative Programmierung ausgelegt sind, sind Haskell, LISP und Prolog. Aber auch Datenbank-Abfragesprachen wie SQL oder auch Build-Werkzeuge wie make und Ant gehören dazu. SQL ist ein gutes Beispiel dafür, dass die Grenzen fließend sind, da sich hier beispielsweise auch objektorientierte Einflüsse finden.

 

 

Beispiele für untergeordnete Programmierparadigmen:

  • logische Programmierung (Prolog)
  • Constraint-Programmierung
  • funktionale Programmierung (Haskell: rein funktional)