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.