Prozedurale Programmierung
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:
* als Erweiterung des imperativen Paradigmas um den Ansatz, Algorithmen in überschaubare Teile zu zerlegen, die anhand einer definierten Schnittstelle aufrufbar sind{{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}}}}.* innerhalb des imperativen Paradigmas als Gegenstück zur objektorientierten Programmierung{{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}}}}
Zusätzlich dazu lassen sich synonyme Verwendungen für strukturierte ProgrammierungHans Benker: Ingenieurmathematik kompakt- Problemlösungen mit MATLAB, Verlag Springer, 2010, ISBN 9783642054525, Seite 59 [http://books.google.de/books?id=o6I_-pKgy7QC&pg=PA59] und imperative ProgrammierungWolfgang Lassmann: Wirtschaftsinformatik, Gabler Verlag, 2006, ISBN 9783409127257, Seite 256 [http://books.google.de/books?id=EolXv84vuwsC&pg=PA256]Axel Kilian: Programmieren Mit Wolfram Mathematica, Verlag Springer, 2009, ISBN 9783642046711, Seite 66 [http://books.google.de/books?id=pHJ6tZtIfH0C&pg=PA66] belegen.
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 ÜbersichtlichkeitPeter A. Henning, Holger Vogelsang: Taschenbuch Programmiersprachen, Hanser Verlag, 2007, ISBN 9783446407442, Seite 34 [http://books.google.de/books?id=94qcnBzwr3YC&pg=PA34]Sebastian Kübeck: Software-sanierung,Verlag Hüthig Jehle Rehm, 2009, ISBN 9783826650727, Seite 29 [http://books.google.de/books?id=TjsIEq6U_f4C&pg=PA29]. 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.Peter A. Henning, Holger Vogelsang: Taschenbuch Programmiersprachen, Hanser Verlag, 2007, ISBN 9783446407442, Seite 51 [http://books.google.de/books?id=94qcnBzwr3YC&pg=PA51]
Beispielsweise verfügte Fortran in der ersten Version 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 lange vorherrschte, bis die objektorientierte Programmierung als Weiterentwicklung praxistauglich eingeführt wurde. Synonym wird auch von der klassischen oder traditionellen Programmierung gesprochen.Ulla Kirch, Peter Prinz: C++- Lernen und professionell anwenden, Verlag Hüthig Jehle Rehm, 2010 ISBN 9783826691430, Seite 25 [http://books.google.de/books?id=Ecb4dUZtmMEC&pg=PA25]
Konzepte der prozeduralen Programmierung bilden die Basis für die objektorientierte Programmierung.Helmut Balzert Java: Objektorientiert programmieren, Verlag W3l GmbH, 2010, ISBN 9783868340136, Seite V [http://books.google.de/books?id=ER2RMWeFeawC&pg=PT5] Seitdem gelten die prozedurale Programmierung und die objektorientierte Programmierung als zwei Hauptströmungen innerhalb der imperativen Programmierung.Kurt Badertscher, Johannes Scheuring: Wirtschaftsinformatik Grundlagen, Verlag Compendio Bildungsmedien AG, 2006, ISBN 9783715592718, Seite 126 [http://books.google.de/books?id=XQbz8Eu_u1gC&pg=PA126] 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 nac) oder auch unendlich sein (Programm wartet auf Ereignisse)
* 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.
*Datenwerte werden als benannte Variablen definiert und über ihre Namen angesprochen.
*Diesen Variablen sind Datentypen zugeordnet, die jeweils nur bestimmte Instruktionen erlauben.
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 zusammenzufassen werden, haben bei der prozeduralen Programmierung Daten und Funktionen keinen Zusammenhalt.Christian Silberbauer: Einstieg in Java und OOP, Verlag Springer, 2009, ISBN 9783540786153 Seite 130 [http://books.google.de/books?id=4_bMofrIPsQC&pg=PA130]
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 betrachtetOliver Alt: Car Multimedia Systeme Modell-basiert testen mit SysML, Verlag Vieweg +Teubner, 2009, ISBN 9783834807618, Seite 44 [http://books.google.de/books?id=T668-HFD93gC&pg=PA44]
Typische prozedurale Programmiersprachen sind Fortran, COBOL, ALGOL, C und Pascal.
Einzelnachweis
Kategorie:Programmierparadigma
be-x-old:Працэдурнае праграмаваньнеel:Δομημένος προγραμματισμός
Procedural programming
es:Programación por procedimientos
et:Protseduraalne programmeerimine
fa:برنامهنویسی رویهای
fi:Proseduraalinen ohjelmointi
Programmation procédurale
he:תכנות פרוצדורלי
it:Programmazione procedurale
ja:手続き型プログラミング
ko:절차적 프로그래밍
ms:Pengaturcaraan bertatacara
pl:Programowanie proceduralne
pt:Programação procedural
ro:Programare procedurală
ru:Процедурное программирование
sv:Procedurell programmering
tr:Yordamsal programlama
uk:Процедурне програмування
vi:Lập trình thủ tục
zh:程序編程
Text und Bilder dieses Beitrags stammen aus dem Artikel Prozedurale Programmierung der freien Enzyklopädie Wikipedia und stehen unter der GNU Free Documentation License. Die Liste der Autoren ist in der Wikipedia unter dieser Seite verfügbar, der Original-Artikel lässt sich hier bearbeiten.