Definition
|
Kontextfreie Grammatik
|
| |
|
4-Tupel
|
|
|
| |
T
|
Terminalsymbole, nicht leere endliche Menge
|
| |
N
|
Nichtterminalsymbole, nicht leere endliche Menge
|
| |
|
|
| |
P
|
Regelmenge, Produktionen, nicht leer
|
| |
Regel
|
|
|
mit
|
|
|
| |
S
|
Startsymbol
|
|
|
| |
Ableitungsschritt
|
|
gegeben
|
x ∈ (N ∪ T)*
p ::= q ∈ P
x = x1px2
|
| |
Ableitungsschritt
|
p wird in x durch die rechte Seite q ersetzt
|
|
|
| |
Notation
|
für einen Ableitungsschritt
|
|
|
| |
Ableitungsfolge
|
|
kurz |
|
| |
Satzform
|
eine Zeichenreihe w ∈ (N ∪ T)* mit
|
|
|
| |
Satz
|
eine Zeichenreihe w ∈ T* mit
|
|
|
| |
Spache L(G)
|
L(G) = { w | w ∈ T* · S ⊢* w}
|
|
Alle aus dem Startsymbol erzeugbaren Wörter über T
|
| |
Ableitungsbaum
Syntaxbaum
|
Eine Ableitungsfolge kann als Baum dargestellt werden
|
| |
|
Die Reihenfolge der Ableitungsschritte innerhalb einer Satzform
hat keinen Einfluss auf die grammatikalische Struktur eines Satzes
|
|
Dieses gilt nicht mehr für kontextsenitive oder Typ-0-Grammatiken
|
| |
|
Die ausgewählten Regeln sind entscheident
|
| |
systematische Ableitungsstrategien
|
|
Linksableitung
|
im Baum (oder im Wort) wird immer das am weitesten links stehende (das erste) Nichtterminalsysmbol abgeleitet
|
| |
Rechtssableitung
|
im Baum (oder im Wort) wird immer das am weitesten rechts stehende (das letzte) Nichtterminalsysmbol abgeleitet
|
| |
Beispiel
|
G = (T, N, P, S) mit
T = { i, +, *, (, ) }
N = { E }
P = { E ::= E + E (1)
, E ::= E * E (2)
, E ::= ( E ) (3)
, E ::= i (4)
}
S = E
|
| |
? |
L(G) = { ... } ?
|
| |
Kunst
|
bei der Konstruktion eines Ableitungsbaums:
Auswahl der richtigen Regeln
|
| |
|
Sonst: Sackgasse
|
| |
Kunst
|
bei der Konstruktion eines Ableitungsbaums:
effiziente Auswahl der richtigen Regeln
|
| |
|
Sonst: Parser unbrauchbar
|
| |
Ziel |
parsen mit einer Zeitkomplexität von O(n)
|
| |
|
Für jede kontextfreie Sprache kann ein Wort in
der Zeitkomplexität O(n3) erkannt werden.
|
| |
Strategie
|
Die Eingabe von links nach rechts verarbeiten,
dabei den Baum schrittweise aufbauen
und bei der Auswahl der Regeln möglichst wenig in der Eingabe vorausschauen.
|
| |