Was bedeutet Syntax?
Syntax bezeichnet die Regeln, nach denen sich Wörter und Morpheme zu Wortgruppen, Sätzen und größeren Strukturen verbinden.
In der Linguistik ist Syntax die Satzlehre (Teilgebiet der Grammatik); in der Informatik beschreibt „Syntax“ die Formregeln einer Programmiersprache, also welche Zeichenfolgen als gültig gelten – unabhängig davon, was sie bedeuten (Semantik).
Syntax – TL;DR
- Linguistik: Regeln der Satzbildung (Wortstellung, Konstituenten, Kongruenz).
- Programmierung: Formregeln einer Sprache; oft per BNF/EBNF festgelegt.
- Syntax ≠ Semantik: Ein Satz/Programm kann syntaktisch korrekt und trotzdem sinnlos sein.
Syntax in der Linguistik – kurz & knackig
- Definition: „Art und Weise, wie Wörter zu Phrasen, Teilsätzen und Sätzen zusammengefügt werden“; klassisch: Lehre vom Satzbau.
- Zentrale Themen: Wortstellung, hierarchische Struktur (Konstituenz), grammatische Relationen (Subjekt/Objekt), Kongruenz (z. B. Verb–Subjekt), Variation zwischen Sprachen.
- Beispiel (DE): „Der Hund jagt die Katze.“ vs. „Die Katze jagt der Hund.“ – gleiche Wörter, andere Struktur/Bedeutung je nach Stellung/Kasus. (Allg. nach Britannica/Wikipedia.)
Berühmtes Lehrbeispiel: „Colorless green ideas sleep furiously.“ – grammatisch korrekt, aber semantisch unsinnig (Chomsky 1957). Es trennt Form (Syntax) von Bedeutung (Semantik).
Syntax in der Informatik/Programmierung
- Was heißt das? Syntax sind die Schreib-/Strukturregeln einer Programmiersprache (z. B. Klammern, Schlüsselwörter, Reihenfolge). Semantik ist, was der Code bewirkt.
- Formale Beschreibung: Häufig mit BNF (Backus–Naur-Form) bzw. EBNF – Notationen für kontextfreie Grammatiken, die gültige Programme definieren.
Mini-BNF für einfache Rechenterme (schematisch):
<expr> ::= <term> | <term> "+" <expr>
<term> ::= <factor> | <factor> "*" <term>
<factor> ::= "(" <expr> ")" | <zahl>
Solche Regeln sagen nur, welche Formen erlaubt sind – nicht, wie man Ergebnisse berechnet (Semantik).
Syntax, Grammatik, Morphologie, Semantik – der Überblick
| Begriff | Kurzdefinition | Beispiel |
|---|---|---|
| Grammatik | Gesamtsystem der Strukturregeln einer Sprache (inkl. Morphologie & Syntax) | „Deutsche Grammatik“ umfasst Flexion und Satzbau. |
| Morphologie | Wortbildung/Flexion (Form von Wörtern/Morphemen) | „geh-e, geh-st, geh-t“ |
| Syntax | Satzbau: wie Wörter zu Phrasen/Sätzen kombiniert werden | „Ich sehe den Hund“ (Verb an 2. Stelle). |
| Semantik | Bedeutung von Wörtern/Sätzen/Programmen | „Farblose grüne Ideen …“ = sinnlos trotz korrekter Form. |
Beispiele zum schnellen Einordnen
- Linguistik (korrekt, aber unsinnig): Colorless green ideas sleep furiously. – korrekt gebaut, ohne sinnvolle Bedeutung.
- Code (Syntaxfehler): if (x > 0 { print(x); } → fehlende ) ⇒ syntaktisch ungültig. (Formregel verletzt.)
- Code (semantischer Fehler): syntaktisch korrekt, aber falsche Bedeutung/Logik (z. B. Division durch 0).
Syntax – Häufige Fragen (FAQ)
Ist Syntax einfach „Wortstellung“?
Mehr als das. Wortstellung ist zentral, aber Syntax untersucht auch Struktur/Hierarchie, Relationen und Kongruenz – also wie Sätze gebaut sind.
Was ist der Unterschied zwischen Syntax und Grammatik?
Grammatik ist der Überbegriff für Sprachregeln; Syntax ist der Satzbau-Teil davon. Umgangssprachlich werden beide manchmal vermischt.
Was ist der Unterschied zwischen Syntax und Semantik?
Syntax = Form/Struktur, Semantik = Bedeutung/Wirkung. Ein Satz/Programm kann formal korrekt, aber inhaltlich falsch/unsinnig sein.
Wozu dienen BNF/EBNF?
Zur formalen Spezifikation von Programmiersprachen-Syntax (und anderen formalen Sprachen). Sie definieren welche Zeichenfolgen gültig sind.
Quellen
- Duden – **Syntax (Bedeutung/„Satzlehre“) **: https://www.duden.de/rechtschreibung/Syntax
- Britannica – Syntax (Überblick): https://www.britannica.com/topic/syntax
- Wikipedia – Syntax (Linguistik, zentrale Themen): https://en.wikipedia.org/wiki/Syntax
- GeeksforGeeks – Difference Between Syntax and Semantics: https://www.geeksforgeeks.org/cpp/difference-between-syntax-and-semantics/
- GeeksforGeeks – BNF Notation in Compiler Design: https://www.geeksforgeeks.org/compiler-design/bnf-notation-in-compiler-design/