# Formale Grammatiken
## Grundbegriffe
### Formale Grammatik
- 4-Tupel
- $G=(Σ,V,S,R)$
- $Σ$: Alphabet
- $V$: endliche Menge Variablen $V ∩ Σ = \not O$
- $S ∈ V$: Startvariablen
- $R$: endliche Menge Regeln
- Form: $α → β$, $α, β ∈ (Σ ∪ V)^*$ mit $α \not= ε$
#### Beispielgrammatik
- $G = (\{a,b\},\{S\},S,\{S→aSb, S→ε\})$
- Alphabet $a,b$
- Variable S
- Startvariable S
- zwei (Ersetzungs-) Regeln:
- rekursiv
- leeres Wort
#### Funktion einer formalen Grammatik
- Bilden von Wörtern durch Ableitungen
- starte mit dem Startsymbol $S$
- solange noch Variablen vorkommen oder man Lust hat:
- wende eine Regel $α → β$ an, um $α$ durch $β$ zu ersetzen
- das Ergebnis ist eine Zeichenkette $w ∈ Σ^*$
- ein aus $G$ abgeleitetes Wort
## Komplexität von Grammatiken
- Je mehr Variablen links UND rechts stehen, desto schwerer wird es sie zu verstehen
- Dadurch wird auch das Wortproblem schwerer
## Übersicht Grammatiken

| Typ | Erlaubte Regeln | Was kann man damit beschreiben? | Beispielregel | Beispielsprache |
|---------------------------|----------------------------------------------------------------|-------------------------------------------------|-------------------------------------------|------------------------------|
| **Regulär (RG)** | A → aB
A → a | Nur ganz einfache Muster, **kein Zählen** | A → aB
B → b | aⁿb (z.B. ab, aab, aaab) |
| **Kontextfrei (CFG)** | A → γ (γ ist beliebige Folge aus Terminals und Nichtterminals) | **Einfache Klammerungen und Zählen** | S → aSb
S → ε | aⁿbⁿ (z.B. ab, aabb, aaabbb) |
| **Kontextsensitiv (CSG)** | αXβ → αwβ (w darf nicht kürzer sein als X) | **Mehr Kontextabhängigkeit, z.B. 3-mal Zählen** | aXb → abb (wenn X zwischen a und b steht) | aⁿbⁿcⁿ (z.B. abc, aabbcc) |
### Erklärungen:
- **Regulär**: Nur ganz einfache Strukturen – keine verschachtelten oder abhängigen Teile.
- **Kontextfrei**: Kann einfache Paare wie aⁿbⁿ beschreiben (z.B. gleich viele a und b).
- **Kontextsensitiv**: Kann komplexe Abhängigkeiten darstellen – z.B. gleich viele a, b und c.
## Reguläre Grammatiken
- Einfachste Grammatiken
### (Rechts-)reguläre Grammatiken
- für alle $ α → β$ aus $R$ gilt
- $ α ∈ V$
- links steht genau eine Variable
- $ β = u*v$ mit $u ∈ Σ^*, v ∈ V ∪ \{ε\}$
- rechts steht wenn überhaupt, dann nur genau eine Variable am Ende
- Worte wachsen _von links nach rechts_
## Kontextfreie Grammatiken
- Hauptsache α ist ein Teil der Variablen
## Kontextsensitive Grammatiken
- für alle $ α → β$ aus $R$ AUßER $S→ε\}$ gilt:
- $ α = u * X * v$ mit $u,v ∈(Σ ∪ V)^*$ und $X ∈ V$
- Symbol nur ersetzen, wenn bestimmte andere Symbole davor und danach stehen
- Symbole davor und danach sind der Kontext
- $ β = u*w*v$ mit $w ∈ (Σ ∪ V)^+$
- Beim Ersetzen muss das neue Stück mindestens so lang sein wie das alte, also das Wort darf nicht kürzer werden.
- $S$ kommt nicht in $ β$ vor
- S steht nie auf der rechten Seite
## Monotone Grammatiken
- Wenn $|β| ≥ |α|$
- Keine Grammatik, die das leere Wort erzeugt ist monoton