11.09.2013 Aufrufe

Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...

Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...

Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

36 3.1 imperativ<br />

3.1 Das imperative Paradigma<br />

” Im Anfang war das Wort“, beginnt das Johannes-Evangelium, und der Informatiker<br />

fügt scherzhaft hinzu: aber es war noch nicht auf eine bestimmte Anzahl von Bits be-<br />

”<br />

schränkt“. Grundgedanke der sogenannten von-Neumann-Maschinen14 ist in der Tat<br />

der in Worte gegliederte Speicher, wobei jedes Wort entweder Programmbefehle oder<br />

Daten aufnehmen kann; es gibt dabei prinzipiell keine Möglichkeit, Programme und<br />

Daten auseinanderzuhalten. Die elementaren Fähigkeiten der Maschine beschränken<br />

sich im wesentlichen darauf, ein Wort aus dem Speicher zu holen und entweder als Befehl<br />

(lat. imperare = befehlen) auszuführen oder damit gewisse Manipulationen vorzunehmen;<br />

ein durch arithmetisch/logische Operationen modifiziertes Wort kann dann<br />

in den Speicher zurückgeschrieben werden. Programme, die diesem Paradigma folgen,<br />

schreiben dem Rechner recht detailliert vor, in welcher Weise der Speicher sukzessive<br />

modifiziert werden soll; man spricht deshalb auch von imperativen <strong>Programmiersprachen</strong>.<br />

Die Abstraktion von der nackten von-Neumann-Maschine besteht hier<br />

darin, daß den im Prinzip typenlosen Worten Typen aufgedrückt werden und daß<br />

man einerseits die Gruppierung mehrerer Worte zu einem zusammengesetzten Datenelement<br />

ermöglicht (Datenabstraktion), andererseits aber auch die Zusammensetzung<br />

mehrerer primitiver von-Neumann-Operationen zu einer komplexen Operation<br />

anbietet (Steuerabstraktion, manchmal auch Kontrollabstraktion genannt).<br />

Die Charakteristika des imperativen Programmierparadigmas sind also (Justice u. a.<br />

1994):<br />

• Wort-für-Wort–Verarbeitung auf einem in kleine Einheiten gegliederten Speicher,<br />

• Programmieren durch Veränderung des Speicherzustands mit Hilfe von Wertzuweisungen,<br />

• maschinenorientierte Daten- und Programmstrukturen, relativ dicht an den<br />

Möglichkeiten der von-Neumann-Maschine.<br />

Prominente Vertreter dieses Paradigmas sind FORTRAN, Pascal, C etc. Ghezzi und<br />

Jazayeri (1998) bezeichnen dieses als das ” prozedurale“ Paradigma.<br />

Es erübrigt sich, hier Beispiele anzubringen, da bei jedem sicherlich eine Vertrautheit<br />

mit imperativen <strong>Programmiersprachen</strong> vorausgesetzt werden kann.<br />

3.2 Das funktionale Paradigma<br />

Eine andere Möglichkeit, Informationsprozesse zu definieren, ist der Begriff der berechenbaren<br />

Funktion im Sinne des λ-Kalküls von A. Church. Im Sinne von Wegner<br />

(1995) müßte man <strong>Programmiersprachen</strong>, die auf diesem Paradigma beruhen, als deklarativ<br />

bezeichnen, weil hier nur Funktionen deklariert werden, ohne dabei Handlungsabläufe<br />

im Rechner vorzuschreiben. Funktionale Sprachen sind sind etwas später<br />

14 Es ist inzwischen weithin anerkannt, daß nicht nur von Neumann, sondern mehrere Leute gleichzeitig,<br />

damals diese Idee hatten, s. etwa Metropolis u. a. (1980).<br />

kopara.pdf

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!