Welche anderen Programmier-Denkschulen ausser der objektorientierten gibt es

Ausser der objektorientierten Denkschule, die das Motto „Alles ist ein Objekt“
vertritt, gibt es noch die

  • prozedurale bzw. imperative Denkschule
    Motto: "Alles ist ein Befehl"
    Bekannte Sprachvertreter: C, Fortran, Pascal, Basic

Ist die wohl am weitesten verbreitete Denkschule, da man
mit ihr ohne grosse Vorbereitung Software erstellen kann.

Sie sieht Software als Folge von Befehlen an den Rechner,
die Ergebnisse zurückliefern können und/oder den globalen Zustand
des Programms ändern. Um die Reihenfolge und die Auswahl der
Befehle zu beeinflussen führten die imperativen Programmiersprachen
Steueranweisungen (Fallunterscheidungen und Schleifen) ein.

Solche Steueranweisungen finden sich auch in den objektorientierten
Programmiersprachen wider.

  • funktionale Denkschule
    Motto: "Alles ist eine Funktion"
    Bekannte Sprachvertreter: Lisp, Haskell

Funktion ist hier im Gegensatz zu dem Befehl der imperativen
Programmiersprachen im mathematischen Sinne zu verstehen als
Berechnungsvorschrift, die mit Eingabeparametern gefüttert ein
Ergebnis zurückliefert, ohne das die Berechnung des Ergebnisses
irgendwelche Auswirkungen auf das restliche Gesamtprogramm hat,
also keine Seiteneffekte aufweist.

Durch das Vermeiden von Seiteneffekten wie z.B. dem Setzen
globaler Variablen, lassen sich besser überschaubare Programme
schreiben, die formal auf ihren korrekten Ablauf geprüft werden
können, analog zu mathematischen Beweisen.

Reinrassige funktionale Programmierung nimmt das „Alles ist eine Funktion“
dabei so wörtlich, dass sie ohne explizite Steueranweisungen auskommt.
Eine Wenn-Dann-Sonst-Fallunterscheidung ist dabei eine Funktion, die
je nach Fall ihr erstes oder ihr zweites Funktionsargument auswählt.

  • logische Denkschule
    Motto: "Alles lässt sich logisch aus Regeln ableiten"
    Bekannte Sprachvertreter: Prolog

Bei einer logischen Programmiersprache füttert der Entwickler
die Software mit Regeln, sie gibt ihm dann durch logisches
Anwenden dieser Regeln Antworten auf seine Fragen.

Beispiel für ein „logisches Expertensystem“:

Regeln:
- Menschen ohne Regenschirm werden bei Regen nass,
- Menschen mit Regenschirm bleiben bei Regen trocken,
- Menschen, die nass werden, holen sich eine Erkältung,

Frage: 
Was muss Herr Meier tun, wenn es regnet und er sich nicht 
erkälten möchte?

Antwort:
Er sollte einen Regenschirm mitnehmen :wink: