Prozedur – ein wiederverwendbarer Code-Block, der eine bestimmte Aufgabe ausführt, aber im klassischen Sinne keinen Rückgabewert liefert. Damit ist sie eine enge Verwandte der Funktion: Funktionen berechnen und liefern ein Ergebnis, Prozeduren führen Aktionen aus (zum Beispiel Text ausgeben, Datei schreiben, Daten ändern).
Prozedur vs. Funktion vs. Methode
- Prozedur: führt Aktionen aus, gibt nichts zurück (in modernen Sprachen oft als void-Funktion realisiert).
- Funktion: berechnet einen Wert und gibt ihn zurück.
- Methode: eine Funktion oder Prozedur, die zu einem Objekt gehört.
Der Begriff Prozedur geht auf ältere Sprachen zurück. In Pascal wird der Unterschied noch sprachlich sichtbar:
procedure Begruesse(name: string);
begin
WriteLn('Hallo, ' + name + '!');
end;
Begruesse('Maria'); // Ausgabe: Hallo, Maria!
In modernen Sprachen wie Python oder Java gibt es das Schlüsselwort procedure nicht – Funktionen ohne Rückgabewert liefern einfach None beziehungsweise void:
def begruesse(name):
print(f"Hallo, {name}!") # kein return -> None
begruesse("Maria")
Übergabewerte und Seiteneffekte
Prozeduren nehmen über Parameter Daten entgegen und wirken über Seiteneffekte: Sie verändern den Zustand des Programms, statt ein Ergebnis zu liefern. Beim Entwurf gilt die Faustregel, Seiteneffekte bewusst und sparsam einzusetzen, damit Code vorhersagbar bleibt. Ein Spezialfall aus der Datenbank-Welt ist die Stored Procedure – eine Prozedur, die direkt im Datenbankserver gespeichert und ausgeführt wird.
Abgrenzung zum Prozess
Nicht verwechseln: Ein Prozess (Process) ist ein laufendes Programm im Betriebssystem, keine Code-Struktur. Auch die Frage, ob Code zur Laufzeit kompiliert oder interpretiert wird, ist unabhängig von Prozeduren.