Kurs:Algorithmen und Datenstrukturen/Vorlesung/Paradigmenbegriff
Paradigmenbegriff
[Bearbeiten]In diesem Kapitel erläutern wir den Paradigmenbegriff.
Definition
[Bearbeiten]„Unter einem Paradigma versteht man unter anderem in der Wissenschaftstheorie ein `Denkmuster, welches das wissenschaftliche Weltbild eine Zeit prägt´ - ein Algorithmenparadigma sollte daher ein Denkmuster darstellen, das die Formulierung und den Entwurf von Algorithmen und damit letztendlich von Programmiersprachen grundlegend prägt.“
Oder etwas kürzer: Ein Muster für den Entwurf und die Formulierung von Algorithmen.
Paradigmen zur Algorithmenkonstruktion
[Bearbeiten]Funktional: Verallgemeinerung der Funktionsauswertung. Rekursion spielt eine wesentliche Rolle.
- f(x) := 2 g(x) + h(x)
- h(x) := 1 + h(x-1)
Logisch: basierend auf logischen Aussagen und Schlussfolgerungen
- „wenn a verwandt mit b und b verwandt mit c, dann ist a verwandt mit c“
Imperativ: basierend auf einem einfachen Maschinenmodell mit gespeicherten und änderbaren Werten. Primär werden Schleifen und Alternativen als Kontrollbausteine eingesetzt.
- „erst: erhöhe a, dann multipliziere b mit c, dann subtrahiere a mit c,….“
Objektorientiert: basierend auf Nachrichtenaustausch zwischen Objekten und Vererbung von Klassen
Beispiel Java: objektorientiert, imperativ, Elemente von funktional
Paradigmen und Programmiersprachen
[Bearbeiten]Funktional
- Haskell, ML, Lisp (Datenauswertung,Datenbank)
Logisch
- Prolog (Datenbank)
Imperativ
- C, Pascal (maschinenorientiert )
Objektorientiert
- Smalltalk, Eiffel („Simulation“ verteilter Systeme), python
Mischungen
- C++, C#, Java
Literatur
[Bearbeiten]Da die Vorlesungsinhalte auf dem Buch Algorithmen und Datenstrukturen: Eine Einführung mit Java von Gunter Saake und Kai-Uwe Sattler aufbauen, empfiehlt sich dieses Buch um das hier vorgestellte Wissen zu vertiefen. Die auf dieser Seite behandelten Inhalte sind in Kapitel 3 zu finden.