Kurs:Algorithmen und Datenstrukturen/Vorlesung/Paradigmenbegriff

Aus Wikiversity




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.


R-0 Discussion R-3