Unterprogramm
Ein Unterprogramm ist Teil eines Computerprogramms. Ein solches Programm besteht in der Regel aus einem Hauptprogramm und mehreren Unterprogrammen.
| Table of contents |
|
2 Unterstützung in Programmiersprachen 3 Umsetzung auf Maschinenebene 4 Informationsaustausch zwischen Unterprogrammen 5 Sammlungen von Unterprogrammen |
Zur Verwaltung einer hohen Verschachtelungstiefe von Unterprogrammen und zur Realisierung von Rekursion wird eine eigene Datestruktur für die Speicherung der Rücksprungadressen angelegt, der so genannte Stapelspeicher (Stack). Moderne Prozessoren besitzen spezielle Befehle zur Unterstützung von Unterprogrammaufrufen (z.B. CALL, JSR). Dabei wird üblicherweise von dem Befehl sowohl die Speicherung der Rücksprungadresse auf dem Stapelspeicher als auch die Verzweigung ausgeführt. Außer zur Speicherung der Rücksprungadressen dient der Stapelspeicher auch zur Zwischenspeicherung von lokalen Variablen.
Zweck
Unterprogramme werden zur besseren Strukturierung von Programmen, zur Abstraktion, Modularisierung, bei mehrfacher Verwendung zum Einsparen von Schreibarbeit und um den Ziel-Code kompakt zu halten eingesetzt.Unterstützung in Programmiersprachen
Nahezu alle modernen Programmiersprachen unterstützen das Unterprogrammkonzept. In Programmiersprachen werden Unterprogramme durch Funktionen und Prozeduren repräsentiert. In den meisten Programmiersprachen können Unterprogramme auch weitere Unterprogramme aufrufen (Schachtelung). Kann ein Unterprogramm sich selbst aufrufen, oder können sich Unterprogramme gegenseitig aufrufen, spricht man von Rekursion. Umsetzung auf Maschinenebene
Vor dem Aufruf eines Unterprogramms wird die Rücksprungadresse gespeichert. Dann wird ein Sprungbefehl zur Zieladresse des Unterprogramms durchgeführt. Beim Verlassen des Unterprogramms wird dann der auf die Rücksprungadresse folgende Befehl ausgeführt. Informationsaustausch zwischen Unterprogrammen
Unterprogramme können Argumente haben, die auch Parameter genannt werden. Beim Aufruf des Unterprogramms werden die Argumente übergeben. Auch die Rückgabe von Werten ist über diese Parameter möglich.Sammlungen von Unterprogrammen
Unterprogramme werden oft vorübersetzt und zu Bibliotheken zusammengefasst.