Grammatiken
In der formalen Sprachtheorie werden Grammatiken verwendet, um die Struktur von Sprachen zu beschreiben. Es gibt verschiedene Typen von Grammatiken, die sich in ihrer Ausdrucksstärke und Komplexität unterscheiden.
Typ 0 - Unbeschränkte Grammatiken
Jede beliebige Produktionsregel ist erlaubt
Typ 0 Grammatiken, auch bekannt als unbeschränkte Grammatiken, sind die allgemeinste und mächtigste Klasse von Grammatiken. In Typ 0 Grammatiken gibt es keine Einschränkungen bezüglich der Form der Produktionsregeln. Jede Regel kann die Form α -> β haben, wobei α und β beliebige Zeichenfolgen aus Terminal- und Nichtterminalsymbolen sein können, mit der einzigen Bedingung, dass α mindestens ein Symbol enthalten muss.
Eigenschaften von Typ 0 Grammatiken:
- Allgemein: Es gibt keine Einschränkungen für die Länge oder Struktur der Produktionsregeln.
- Erzeugt: Diese Grammatik erzeugt rekursiv aufzählbare Sprachen, die von einer Turing-Maschine erkannt werden können.
- Mächtigkeit: Typ 0 Grammatiken sind die mächtigste Form von Grammatiken und können jede berechenbare Sprache beschreiben.
Beispiele:
Ein einfaches Beispiel einer Typ 0 Grammatik könnte so aussehen:
- Regel:
AB -> BA
Diese Regel besagt, dass das SymbolpaarABinBAumgekehrt werden kann. - Regel:
S -> aSb | εDiese Regel besagt, dass das StartsymbolSdurchaSbersetzt oder gelöscht (ε) werden kann.
Unbeschränkte Grammatiken sind in der Theorie von Turingmaschinen und der Berechenbarkeit von Interesse, da sie in der Lage sind, jede berechenbare Funktion darzustellen.
Typ 1 - Kontext-sensitive Grammatiken
|Linke Seite| kleiner gleich |Rechte Seite|
Typ 1 Grammatiken, auch bekannt als kontext-sensitive Grammatiken, sind eine Klasse von Grammatiken, bei denen jede Produktionsregel die Form αAβ -> αγβ hat. Hierbei sind α, β, und γ Zeichenfolgen (oder Leerzeichen), und A ist ein Nichtterminalsymbol. Die Bedingung ist, dass die Länge der Zeichenfolge auf der rechten Seite der Produktionsregel mindestens so lang ist wie die auf der linken Seite.
Eigenschaften von Typ 1 Grammatiken:
- Kontext-sensitiv: Die Produktionsregeln können vom Kontext der Symbole abhängen, was bedeutet, dass
Ain einem bestimmten Kontextαundβersetzt wird. - Nicht-umkehrbar: Regeln dürfen die Länge der Zeichenkette nicht verringern.
- Erzeugt: Diese Grammatik erzeugt kontext-sensitive Sprachen, die mächtiger als kontextfreie Sprachen sind.
Beispiele:
Ein einfaches Beispiel einer Typ 1 Grammatik könnte so aussehen:
- Regel:
AB -> ABC
Diese Regel sagt, dass das SymbolAB, wenn es auftritt, durchABCersetzt werden kann.
Kontext-sensitive Grammatiken werden verwendet, um Sprachen zu beschreiben, die komplexere Strukturen haben als die, die durch kontextfreie Grammatiken beschrieben werden können.
Typ 2 - Kontextfreie Grammatiken
Linke Seite nur ein Nichtterminal
Typ 2 Grammatiken, auch bekannt als kontextfreie Grammatiken (CFG), sind eine Klasse von Grammatiken, bei denen jede Produktionsregel die Form A -> γ hat. Hierbei ist A ein Nichtterminalsymbol und γ eine Zeichenfolge, die aus Terminal- und/oder Nichtterminalsymbolen bestehen kann.
Eigenschaften von Typ 2 Grammatiken:
- Kontextfrei: Das linke Nichtterminal
Akann unabhängig vom Kontext durch die Zeichenfolgeγersetzt werden. - Erzeugt: Diese Grammatik erzeugt kontextfreie Sprachen, die oft in der Programmiersprachen- und Parserentwicklung verwendet werden.
- PDA-Verarbeitung: Kontextfreie Sprachen können von einem Pushdown-Automaten (PDA) erkannt werden.
Beispiele:
Ein klassisches Beispiel einer Typ 2 Grammatik könnte so aussehen:
- Regel:
S -> aSb | εDiese Regel besagt, dass das StartsymbolSdurchaSbersetzt oder gelöscht (ε) werden kann.
Kontextfreie Grammatiken eignen sich besonders gut zur Beschreibung der Syntax von Programmiersprachen und sind ein zentraler Bestandteil von Parsern.
Typ 3 - Reguläre Grammatiken
Rechte Seite endet nicht auf einem Nichtterminal sondern auf einem Terminal
Typ 3 Grammatiken, auch bekannt als reguläre Grammatiken, sind die einfachste Klasse von Grammatiken. Die Produktionsregeln haben die Form A -> aB oder A -> a, wobei A und B Nichtterminalsymbole und a ein Terminalsymbol ist.
Eigenschaften von Typ 3 Grammatiken:
- Regularität: Die Regeln sind stark eingeschränkt, was zu einer sehr einfachen Struktur der Sprachen führt.
- Erzeugt: Diese Grammatik erzeugt reguläre Sprachen, die von endlichen Automaten (DFA oder NFA) erkannt werden können.
- Einfache Muster: Reguläre Grammatiken sind ideal zur Beschreibung einfacher Muster, wie sie in regulären Ausdrücken verwendet werden.
Beispiele:
Ein einfaches Beispiel einer Typ 3 Grammatik könnte so aussehen:
- Regel:
S -> aS | bDiese Regel sagt, dass das StartsymbolSdurchaSoderbersetzt werden kann.
Reguläre Grammatiken werden häufig in der Mustererkennung, der Lexikalischen Analyse und bei der Implementierung von Suchalgorithmen verwendet.