Semantik – die Bedeutung von Code: was ein Programm tatsächlich bewirkt. Die Syntax beschreibt, wie Code geschrieben sein muss (die Grammatik), die Semantik beschreibt, was der Code bedeutet und tut. Ein Satz kann grammatikalisch korrekt sein und trotzdem Unsinn bedeuten – genau so kann Code syntaktisch fehlerfrei sein und semantisch falsch arbeiten.

Syntaxfehler vs. Semantikfehler

# Syntaxfehler: Der Code lässt sich nicht parsen
# print("Hallo"   <- schließende Klammer fehlt

# Semantikfehler: syntaktisch gültig, aber falsche Bedeutung
preis = 10
rabatt = 2
ergebnis = preis + rabatt  # gemeint war: preis - rabatt

Der Parser prüft zunächst die Syntax. Die Semantik wird je nach Sprache beim Kompilieren, beim Interpretieren oder erst zur Laufzeit bewertet – manche semantische Fehler zeigen sich erst, wenn das Programm unerwartete Ergebnisse liefert.

Arten der Semantik

  • Statische Semantik: wird vor der Ausführung geprüft, zum Beispiel Typfehler – unterstützt durch Typsicherheit.
  • Dynamische Semantik: beschreibt das Laufzeitverhalten, etwa eine Division durch Null.
  • Semantische HTML-Elemente: <header>, <nav>, <article> tragen Bedeutung statt bloßer Darstellung – siehe HTML5-Semantik.

Beim Programmieren gilt: Korrekte Syntax ist nur die halbe Arbeit – die Semantik entscheidet, ob das Programm das tut, was gewollt ist. Deshalb gehören zu gutem Code immer auch klare Namen und Tests, die das erwartete Verhalten absichern.