Programmierparadigma
Programmierparadigma nennt man ein einer Programmiersprache oder Programmiertechnik zugrundeliegendes Prinzip.Grundsätzlich kann man unterscheiden zwischen imperativer Programmierung, funktionaler Programmierung und logischer Programmierung (die wiederum als Spezialfall der Funktionalen Programmierung aufgefasst werden kann). Alle weiteren Programmierparadigmen sind Verfeinerungen oder Ergänzungen dieses Prinzips.
Zum Beispiel folgt die Programmiersprache Java dem Paradigma der objektorientierten Programmierung, die Programmiersprache C++ ermöglicht generische Programmierung, objektorientierte Programmierung und prozedurale Programmierung und beide entsprechen dem Paradigma der imperativen Programmierung.
- Imperative Programmierung
Die Aufgabenstellung wird als lineare bzw. sequentielle Befehlsabfolge formuliert, wobei der Kontrollfluss mit bedingten Sprüngen gesteuert werden kann. Die Befehle manipulieren dabei den Zustand der Speicherbereiche oder Speichermedien, die die zu verarbeitenden und die auszugebenden Daten enthalten. Daher kann man sie auch als Zustandsorientierte Programmierung bezeichnen. - Funktionale Programmierung/Deklarative Programmierung
Die Aufgabenstellung und die bekannten Prämissen werden hier als funktionaler Ausdruck formuliert. Das selbstständige Anwenden von Funktionsersetzung und Auswertung des Interpreters lösen dann die Aufgabenstellung. Das Programm kann als Abbildung der Eingabe auf die Ausgabe aufgefasst werden. - Logische Programmierung
Die Aufgabenstellung und ihre Prämissen werden als logische Aussagen formuliert (vgl. funktionale Programmierung, s.o.). Der Interpreter versucht dann, die gewünschte Lösungsaussage mit Hilfe des Horn-Verfahrens herzuleiten. (Siehe auch Horn-Klauseln) z.B. Prolog - Constraintprogrammierung
- Prozedurale Programmierung
Die Aufgabenstellung wird in kleinere Teilaufgaben, "Prozeduren", zerlegt, die dann einzeln im Kalkül der imperativen Programmierung (s.u.) implementiert werden. - Datenstromorientierte Programmierung
Es wird von einem kontinuierlichen Datenfluss ausgegangen (meist Audio- oder Videodaten), der (oft in Echtzeit) verändert und ausgegeben wird. - Programmierung mit abstrakten Datentypen
Die Programmierung mit abstrakten Datentypen behandelt Daten und Funktionen zur Behandlung dieser Daten als Einheit. - Agentenorientierte Programmierung
Bei der agentenorientierten Programmierung steht der Begriff des autonomen und planenden Agenten im Vordergrund, der selbstständig und in Kooperation mit anderen Agenten Probleme löst. - objektorientierte Programmierung
Hier wird ein Computerprogramm als eine Menge interagierender Objekte aufgefasst. - Generische Programmierung
In der generischen Programmierung wird versucht die Algorithmen so weit wie möglich von den Datenstrukturen zu trennen.