Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...
Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...
Konzepte h¨oherer Programmiersprachen (Entwurf) - WSI ...
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