PARADIGMEN DER PROGRAMMIERUNG
Paradigma: grundlegendes Prinzip,
beispielorientierte Vorstellung, zwischen "Modell"
und "Analogie"
angesiedelt, teilweise exakt, mathematisch unterstützbar,
anschaulich, auf virtuellem Niveau. Paradigmen der Programmierung
(in Anlehnung an Floyd 1979):
1.
Kontrollfluss-Paradigma
(von Neumann - Paradigma)
liegt der klassischen prozeduralen Programmierung zugrunde.
Programmiersprachen: Fortran, Basic, Pascal, C.
Computer = Maschine zur Veränderung von Variablenwerten.
Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen).
Programmfindung: Elementare Einzelschritte finden und in flexible Reihenfolge bringen.
Beispiel (in C):
int i, n, z;
n = 10;
i = 1;
while (i < n)
{
z = i*i;
printf("%d\n", z);
i = i+1;
}
printf("Ende.\n");
2. Objektorientiertes Paradigma
Programmiersprachen: Simula, C++, Smalltalk, Delphi, Java
Computer = Umgebung für virtuelle Objekte
Programm = Auflistung von (Objekt-) Klassen, d.h. allgemeiner Spezifikationen von Objekten, die zur Laufzeit des Programms (mehrfach) kreiert und wieder vernichtet werden können und miteinander kommunizieren.
Programmfindung: Spezifikation der Klassen (Daten und Methoden), die Objektstruktur und -verhalten festlegen.
Beispiel (in C++):
class matrix
{
float feld[3][3];
public:
void initmatrix(float wert);
void einheitsmatrix();
void showmatrix();
friend matrix summe(matrix a, matrix b);
};
3. Funktionales Paradigma
Programmiersprachen: Lisp, Lambda-Kalkül, APL
Computer = Maschine, die Verallgemeinerungen von Operationen bilden, d.h. Funktionale definieren kann (vergleichbar der Bildung neuer Begriffe in der Mathematik)
Programm = verschachtelter Ausdruck funktionaler Anwendungen
Programmfindung: Spezifikation von Funktionen, die das Problem lösen
Beispiel (FP-System nach Backus):
def Skalarprod = (/+) ° (a*) ° trans
definiert das Skalarprodukt zweier Vektoren beliebiger Dimension.
Beachte: Keine Sequentialisierung, keine Variablendeklarationen, sehr kompakte Programme möglich.
4. Fallregel-Paradigma
Programmiersprachen: L-Systeme, PROLOG, Intran, regelbasierte KI-Sprachen.
Computer = Transformationsmaschine für Zustände oder Strukturen.
Es gibt einen aktuellen Zustand (eine aktuelle Struktur), der/die solange transformiert wird, wie dies möglich ist.
Arbeitsprozess: Such- und Anwendungsprozess
(matching und rewriting).
Programm = Menge von Transformationsregeln.
Programmfindung: Spezifikation der Regeln.
Beispiel (in INTRAN):
GGT VON M, N where
M=N -> M;
M>N -> GGT VON M-N, N;
M<N -> GGT VON M, N-M.
Konkrete Programme enthalten oft Elemente aus verschiedenen Paradigmen.
Beispiele:
- prozedurale Teile in Simula und C++
- funktionale Konstrukte in L-Systemen
- Variablendeklarationen in L-Systemen.
Die Verwendung eines bestimmten Programmier-Paradigmas legt noch nicht die Wahl der Programmiersprache fest!
Beispiel: Objektorientierte Programmierung auch in Fortran möglich (gr. Aufwand!), prozedurale Elemente auch in C++ usw.
Jedoch ist die "passende" Programmiersprache in der Regel sehr hilfreich, da sie die geeigneten Konstrukte schon anbietet und diese dann nicht mehr neu definiert werden müssen (z.B. Klassen für die objektorientierte Programmierung).
Last modification: May 9, 2001