Zum Inhalt springen

„Prozedurale Programmierung“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Änderung von 198.240.212.2 rückgängig WEIL: Bitte Belege für "typisch"/"relevant" von PL/I
proz.prog.!=imper.prog. die Quellen vertreten eine offenkundig falsche Meinung, die Autoren kommen aus der 'Ingenieursmathematik" und Wirtschaft und sind keine Experten auf dem Gebiet.
Zeile 3: Zeile 3:
* als Erweiterung des [[Imperative Programmierung|imperativen Paradigmas]] um den Ansatz, Algorithmen in überschaubare Teile zu zerlegen, die anhand einer definierten Schnittstelle aufrufbar sind.<ref name="KOP">{{Literatur|Titel=Konzepte Objektorientierter Programmierung|TitelErg=Mit einer Einführung in Java|Autor=Arnd Poetzsch-Heffter|Verlag=Springer|Ort=Berlin|Reihe=eXamen.press|Seiten=10-12|Jahr=2009|ISBN=978-3-540-89470-4|Online={{Google Buch|BuchID=jXCk1pAFGqoC|Seite=PA10}}}}</ref>
* als Erweiterung des [[Imperative Programmierung|imperativen Paradigmas]] um den Ansatz, Algorithmen in überschaubare Teile zu zerlegen, die anhand einer definierten Schnittstelle aufrufbar sind.<ref name="KOP">{{Literatur|Titel=Konzepte Objektorientierter Programmierung|TitelErg=Mit einer Einführung in Java|Autor=Arnd Poetzsch-Heffter|Verlag=Springer|Ort=Berlin|Reihe=eXamen.press|Seiten=10-12|Jahr=2009|ISBN=978-3-540-89470-4|Online={{Google Buch|BuchID=jXCk1pAFGqoC|Seite=PA10}}}}</ref>
* innerhalb des imperativen Paradigmas als Gegenstück zur [[Objektorientierte Programmierung|objektorientierten Programmierung]]<ref name="VI">{{Literatur|Autor=Heinrich Müller, Frank Weichert|Titel=Vorkurs Informatik|TitelErg=Der Einstieg ins Informatikstudium|Verlag=Vieweg+Teubner|Ort=Wiesbaden|Seiten=208|Jahr=2011|ISBN=978-3-8348-0959-9|Online={{Google Buch|BuchID=PA3w_JugxvUC|Seite=PA208}}}}</ref>
* innerhalb des imperativen Paradigmas als Gegenstück zur [[Objektorientierte Programmierung|objektorientierten Programmierung]]<ref name="VI">{{Literatur|Autor=Heinrich Müller, Frank Weichert|Titel=Vorkurs Informatik|TitelErg=Der Einstieg ins Informatikstudium|Verlag=Vieweg+Teubner|Ort=Wiesbaden|Seiten=208|Jahr=2011|ISBN=978-3-8348-0959-9|Online={{Google Buch|BuchID=PA3w_JugxvUC|Seite=PA208}}}}</ref>

Zusätzlich lassen sich synonyme Verwendungen für [[strukturierte Programmierung]]<ref>Hans Benker: ''Ingenieurmathematik kompakt – Problemlösungen mit MATLAB''. Springer, 2010, ISBN 978-3-642-05452-5, Seite 59, [http://books.google.de/books?id=o6I_-pKgy7QC&pg=PA59 books.google.de]</ref> und imperative Programmierung<ref>Wolfgang Lassmann: ''Wirtschaftsinformatik''. Gabler Verlag, 2006, ISBN 978-3-409-12725-7, Seite 256, [http://books.google.de/books?id=EolXv84vuwsC&pg=PA256 books.google.de]</ref><ref>Axel Kilian: ''Programmieren mit Wolfram Mathematica''. Springer, 2009, ISBN 978-3-642-04671-1, Seite 66, [http://books.google.de/books?id=pHJ6tZtIfH0C&pg=PA66 books.google.de]</ref> belegen.


== Zerlegung in Teilprobleme ==
== Zerlegung in Teilprobleme ==

Version vom 6. November 2012, 12:46 Uhr

Prozedurale Programmierung ist ein Programmierparadigma, nach dem Computerprogramme entwickelt werden können. Die Bezeichnung ist nicht eindeutig; in der Literatur wird sie für verschiedene Bedeutungen verwendet:

Zerlegung in Teilprobleme

Die prozedurale Programmierung ergänzt das imperative Konzept aufeinander folgender Befehle um den Ansatz, einen Algorithmus in überschaubare Teile zu zerlegen. Je nach Programmiersprache werden diese Teile Unterprogramm, Routine, Prozedur oder Funktion genannt. Es lassen sich Parameter übergeben und Ergebnisse zurückgeben. Durch lokale und globale Variablen kann die „Sichtbarkeit“ der Variablen gesteuert werden: Während lokale Variablen nur innerhalb einer Prozedur bekannt sind, sind globale Variablen im ganzen Computerprogramm bekannt. Zusammen mit den Kontrollstrukturen der strukturierten Programmierung ist die prozedurale Programmierung ein Mittel zur Herstellung der Übersichtlichkeit.[3][4] Neben der Übersichtlichkeit können so Codewiederholungen vermieden werden. Die modulare Programmierung hat einen ähnlichen Zweck, aber auf einer höheren Ebene: Größere Computerprogramme sollen hierbei in einzelnen Modulen entwickelt, getrennt compiliert und getestet werden können oder es sollen fertige Programmbibliotheken eingebunden werden.[5]

Beispielsweise verfügte Fortran in der ersten Version (um 1960) nicht über den prozeduralen Ansatz trotz anderer Konzepte zur strukturierten Programmierung; der prozedurale Ansatz wurde in einer späteren Version eingebaut.

Imperative, nicht objektorientierte Programmierung

Die zweite Bedeutung ist als Sammelbegriff für die Programmierart, die bis in die 1990er Jahre lange vorherrschte, bis die objektorientierte Programmierung als Weiterentwicklung praxistauglich eingeführt wurde. Synonym wird auch von der „klassischen“ oder „traditionellen Programmierung“ gesprochen.[6]

Konzepte der prozeduralen Programmierung bilden die Basis für die objektorientierte Programmierung.[7] Seitdem gelten die prozedurale Programmierung und die objektorientierte Programmierung als zwei Hauptströmungen innerhalb der imperativen Programmierung.[8] Hybridsprachen unterstützen beide Konzepte.

Die prozedurale Art der Entwicklung war – bedingt durch den Sprachumfang früher Programmiersprachen – die klassische Art des Programmierens. Doch sind auch bestimmende Eigenschaften der prozeduralen Entwicklung teilweise noch in neueren Programmiersprachen anwendbar.

Merkmale dieser Art des Programmierens sind:

  • Imperativer Ansatz: Folge von definierten Zustandsübergängen, bei denen festgelegt ist, wie diese Zustände verändert werden sollen. Diese Zusammengesetzten Anweisungen können endlich (Programm endet terminiert selbstständig) oder auch unendlich sein (Programm wartet auf Ereignisse).[1]
  • Kontrollstrukturen (z. B. Sequenz, Schleife, Verzweigung) zur Steuerung der Befehlsausführung.
  • Aufrufen von Unterprogrammen und das Durchleiten und die Rückgabe von Parameterwerten (Konzept der Abstraktion bzw. prozedurale Programmierung im engeren Sinne). Dabei entsteht eine Hierarchie von Funktionen, die jeweils sequentiell abgearbeitet werden. Die Gruppierung und Hierarchie kann beliebigen logischen Prinzipien entsprechen. Der Startpunkt des Programms liegt in der Hauptprozedur – von der aus die Teilfunktionen aufgerufen werden.[1]
  • Datenwerte werden als benannte Variablen definiert und über ihre Namen angesprochen.[1]
  • Diesen Variablen sind Datentypen zugeordnet, die jeweils nur bestimmte Instruktionen erlauben.[1]

Der hauptsächliche Unterschied zwischen prozeduraler und objektorientierter Programmierung ist die Beziehung zwischen Daten und Funktionen. Während bei der objektorientierten Programmierung Daten und Funktionen, die auf diese Daten angewandt werden können, in Objekten zusammengefasst werden, haben bei der prozeduralen Programmierung Daten und Funktionen keinen Zusammenhalt.[9]

Die Entwicklung prozeduraler Programmiersprachen und -techniken basiert auf der von-Neumann-Architektur, die mit den Assemblersprachen begann und in den Hochsprachen ihre Weiterentwicklung fand. Während der prozedurale Ansatz dem Programmablauf auf der Hardware folgt, abstrahiert der objektorientierte Ansatz. Somit wird die prozedurale Programmierung als eine Abstraktionsstufe zwischen Assembler und objektorientierter Programmierung betrachtet[10]

Typische prozedurale Programmiersprachen sind Fortran, COBOL, ALGOL, C und Pascal.

Einzelnachweise

  1. a b c d e Arnd Poetzsch-Heffter: Konzepte Objektorientierter Programmierung. Mit einer Einführung in Java (= eXamen.press). Springer, Berlin 2009, ISBN 978-3-540-89470-4, S. 10–12 (eingeschränkte Vorschau in der Google-Buchsuche).
  2. Heinrich Müller, Frank Weichert: Vorkurs Informatik. Der Einstieg ins Informatikstudium. Vieweg+Teubner, Wiesbaden 2011, ISBN 978-3-8348-0959-9, S. 208 (eingeschränkte Vorschau in der Google-Buchsuche).
  3. Peter A. Henning, Holger Vogelsang: Taschenbuch Programmiersprachen. Hanser Verlag, 2007, ISBN 978-3-446-40744-2, Seite 34, books.google.de
  4. Sebastian Kübeck: Software-Sanierung. Verlag Hüthig Jehle Rehm, 2009, ISBN 978-3-8266-5072-7, Seite 29, books.google.de
  5. Peter A. Henning, Holger Vogelsang: Taschenbuch Programmiersprachen. Hanser Verlag, 2007, ISBN 978-3-446-40744-2, Seite 51, books.google.de
  6. Ulla Kirch, Peter Prinz: C++ – Lernen und professionell anwenden. Verlag Hüthig Jehle Rehm, 2010 ISBN 978-3-8266-9143-0, Seite 25, books.google.de
  7. Helmut Balzert: Java:Objektorientiert programmieren. Verlag W3l, 2010, ISBN 978-3-86834-013-6, Seite V, books.google.de
  8. Kurt Badertscher, Johannes Scheuring: Wirtschaftsinformatik Grundlagen. Compendio Bildungsmedien, 2006, ISBN 978-3-7155-9271-8, Seite 126, books.google.de
  9. Christian Silberbauer: Einstieg in Java und OOP. Springer, 2009, ISBN 978-3-540-78615-3, Seite 130, books.google.de
  10. Oliver Alt: Car Multimedia Systeme Modell-basiert testen mit SysML. Vieweg + Teubner, 2009, ISBN 978-3-8348-0761-8, Seite 44, books.google.de