Formale Grammatik
aus www.iwiki.de, der freien Wissensdatenbank
Eine formale Grammatik besteht aus einer Menge von Terminalen und Nichtterminalen, einem Startsymbol aus der Menge der Nichtterminale sowie einem Produktionssystem.
Inhaltsverzeichnis |
Schreibweise
G = (N,T,P,Start)
- Nichtterminale (N)
- Eine endliche, nichtleere Menge von Zeichen. Durch Anwendung einer Regel auf ein Nichtterminal kann es in ein anderes Zeichen oder Zeichenkette umgewandelt werden.
- Terminale (T)
- Eine endliche, nichtleere Menge von Zeichen oder Zeichenfolgen. Terminale können durch Regeln des Produktionssystems nicht mehr umgeformt werden, daher der Name Terminal -> im Endzustand. In Büchern und Skripten wird auch oft das Zeichen Σ verwendet.
- Start (S)
- Das Startzeichen S ist ein Zeichen aus der Menge der Nichtterminale, also
- Produktionssystem (P)
- Jedes Element im Produktionssystem P ist eine Produktion oder (Ersetzungs-) Regel. Eine Regel besteht aus einem Paar (p,q), oder
. p steht dabei für die linke Seite einer Regel und q für die rechte Seite.p und q sind Wörter über dem Alphabet
, d.h. p und q können aus allen Terminalen
und Nichtterminalen
bestehen. . Die Schreibweise
bedeuted also, dass das Wort p durch Anwendung der Regel in das Wort q umgewandelt wird.
Beispiele
Ein Beispiel für eine Grammatik über das Alphabet {a,b} ist anbn,n > = 1. Die Sprache besteht aus allen Wörtern die mit n * a anfangen und n * b aufhören, zum Beispiel
. Mit der Einschränkung
wird das leere Wort ε aus der erzeugten Sprache ausgeschlossen.
Es sei N = {S}, T = {a,b} und S das Startsymbol. Das Produktionssystem P besteht aus den Produktionsregeln:
Andere Schreibweisen für das Produktionssystem:
- P:{(S,aSb),(S,ab)}
- in BNF
<S> ::= a<S>b
| ab
Grammatik: G = {N,T,P,Start}
Das Wort aaabbb kann abgeleitet werden indem man die Regeln aus P anwendet. Man fange mit dem Startsymbol S an. Nun wird eine Regel auf das Startsymbol angewandt:
-
Wort bisher: aSb
Mit dem anwenden dieser Regel wird das Nichtterminal S in die Folge aSb umgewandelt. Das gleiche nochmal:
-
Wort bisher: aaSbb
Wieder wurde S durch aSb ersetzt. Jetzt wird die zweite Regel angewandt:
Das Resultat: aaabbb Da sich keine weiteren Nichtterminale im erzeugten Wort befinden kann auch keine weitere Regel mehr angewendet werden. Es wurde ein gültiges Wort aus der Sprache L(G) erzeugt.
Eigenschaften
Mächtigkeit
Die Mächtigkeit einer Sprache hängt davon ab wie stark man die Regeln im Produktionssystem einschränkt. Je mehr Regeln, desto vielfältigere Möglichkeiten gibt es gültige Wörter zu erzeugen.
Mehrdeutigkeit
Eine Grammatik ist mehrdeutig wenn man ein Wort durch mehr als eine Kombination von Produktionsregeln erzeugen kann.
Eindeutigkeit
Ist eine Grammatik eindeutig, kann jedes Wort der erzeugten Sprache nur auf genau einem Weg erzeugt werden, d.h. es gibt für jedes Wort nur einen Syntaxbaum (Ableitungsbaum).
Typen von formalen Grammatiken
Der Linguist Noam Chomsky führte eine Klassifizierung von formalen Grammatiken durch die nach ihm benannte Chomsky-Hierarchie ein. Die Chomsky-Hierarchie unterteilt formale Grammatiken in 4 unterschiedliche Typen. Je höher die Klasse, desto mehr Einschränkungen gelten für die Produktionsregeln einer entsprechenden Grammatik.
Neben den Typen der Chomsky-Hierarchie gibt es noch weitere Grammatiken:
- Graphgrammatiken
- Hypergraphgrammatiken
- Lindenmayer-Systeme
Weblinks
JFLAP: Software zum Experimentieren mit Formalen Sprachen, Automaten, usw.
