- Nichtterminale
-
Formale Grammatiken sind mathematische Modelle von Grammatiken, die mit Hilfe des Semi-Thue-Systems angegeben werden und durch die formale Sprachen beschrieben und erzeugt werden können. Sie werden in der theoretischen Informatik, insbesondere in der Berechenbarkeitstheorie, und im Compilerbau angewandt, um zum einen eine formale Sprache eindeutig zu beschreiben (d. h. um eindeutig festzulegen, ob ein Wort Element einer Sprache ist, oder nicht) und um zum anderen Eigenschaften dieser formalen Sprachen zu untersuchen bzw. zu beweisen. Formale Grammatiken werden mit Hilfe der Chomsky-Hierarchie klassifiziert.
Inhaltsverzeichnis
Definition
Eine formale Grammatik ist ein 4-Tupel G = (N,T,P,S) bestehend aus:
- N eine nichtleere, endliche Menge (ein Alphabet) von Nichtterminalsymbolen
- T eine nichtleere, endliche Menge (ein Alphabet) von Terminalsymbolen, wobei ist, also die Mengen N und T disjunkt sind. Es gibt somit kein Symbol, das sowohl Nichtterminal- als auch Terminalsymbol ist.
- P eine nichtleere, endliche Menge von Produktionsregeln, welche eine Teilmenge der Menge ist.
- S dem Startsymbol, das zur Menge der Nichtterminalen gehört ()
Die Menge aller terminaler und aller nichtterminaler Symbole einer Grammatik G wird Vokabular dieser Grammatik genannt.
Elemente einer formalen Grammatik
Nichtterminalsymbole
Ein Nichtterminalsymbol (auch Nichtterminal oder Variable genannt) ist ein Symbol, welches zur Erzeugung der formalen Sprache, die durch die Grammatik beschrieben werden soll, verwendet wird, aber im Gegensatz zu Terminalsymbolen kein Symbol ist, welches in den Wörtern der erzeugten Sprache vorkommt. Nichtterminale werden gewöhnlich durch Großbuchstaben repräsentiert oder durch spitze Klammern gekennzeichnet (<Nichtterminal>).
Terminalsymbole
Terminalsymbole (auch Terminalzeichen oder kurz Terminale genannt) sind diejenigen Symbole, aus denen sich die Worte der zu erzeugenden formalen Sprache zusammensetzen. Sie werden in der Regel durch Kleinbuchstaben repräsentiert. Ein einzelnes Terminalsymbol kann bei der Erzeugung der durch die Grammatik beschriebenen Sprache nicht durch eine Produktionsregel ersetzt werden.
Produktionsregeln
Eine Produktionsregel (auch Regel oder Produktion genannt) ist ein geordnetes Paar (R,Q), wobei R ein aus Terminale und Nichtterminale bestehendes Wort ist, welches mindestens ein Nichtterminalsymbol enthält (), und Q ein beliebiges, aus terminalen und nichtterminalen Symbolen bestehendes Wort ist (). R wird auch Prämisse und Q Konklusion der Produktionsregel (R,Q) genannt. Eine Produktionsregel (R,Q) wird oftmals mit Hilfe der Schreibweise notiert und eine Menge von Regeln wird oft durch die Schreibweise abgekürzt.
Startsymbol
Das Startsymbol (auch Startvariable genannt) ist ein Nichtterminalsymbol, von welchem aus die Wörter der durch die Grammatik beschriebenen Sprache erzeugt werden. Zur Darstellung des Startsymbols wird meist das Zeichen S verwendet.
Die Erzeugung der von einer Grammatik beschriebenen Sprache
Eine Regel einer gegebenen Grammatik G besagt, dass in einem Wort mit R als Infix, dieses durch das Wort Q ersetzt werden kann, so dass ein neues Wort mit Q als Infix entsteht. Man spricht hierbei auch davon, dass w in mit der Grammatik G bzw. durch die Regel übergeht, welches über die Schreibweisen , bzw. notiert wird. Demnach ist ein solcher Übergang von w in eine Transitionsrelation, die für gegebene w und genau dann definiert ist, wenn:
Gibt es nun eine Folge von Wörtern , bei der gilt, dass für jede natürliche Zahl i mit das Wort wi in wi + 1 übergeht (), so ist wn in n Schritten aus w0 ableitbar, was durch dargestellt wird. Eine solche Wortfolge wird Ableitung oder Rechnung von w0 in wn der Länge n genannt. Weiterhin heißt w in ableitbar, wenn es mindestens ein gibt, so dass in n Schritten aus w ableitbar ist. Wenn w in ableitbar ist, so wird dies durch die Schreibweise dargestellt. Dabei wird zusätzlich definiert, dass für jedes Wort gilt, dass ist, so dass die Relation die reflexiv-transitive Hülle der Relation ist.
Nun ist die von der Grammatik G erzeugte, formale Sprache L(G) diejenige Sprache, die aus allen Wörtern besteht, die zum einen nur aus Terminalsymbole bestehen und die zum anderen vom Startsymbol mit einer endlichen Anzahl von Schritten abgeleitet werden können:
Dabei ist es egal, in welcher Reihenfolge die Produktionsregeln auf die abgeleiteten Wörter angewandt werden, oder ob es mehrere Möglichkeiten gibt, um ein Wort w aus S abzuleiten. Zwei Grammatiken G1 und G2 sind genau dann äquivalent, wenn die durch G1 und G2 erzeugten Sprachen gleich sind:
Beispiele
Wir betrachten die kontextsensitive Grammatik G mit den Terminalen {a,b}, den Nichtterminalen {S,A,B} mit dem Startsymbol S und den Regeln
Dabei ist das leere Wort, welches ein Wort der Länge 0 ist. Diese Grammatik G definiert die Sprache aller Wörter der Form anbn mit . So sind auf Grund der folgenden Ableitungen die Wörter ε, ab und aabb Elemente der durch G erzeugten Sprache:
Man beachte, dass es mehrere Ableitungen gibt, um das Wort aabb aus S abzuleiten. Eine weitere Grammatik zur Erzeugung der betrachteten Sprache , die kontextfrei ist, ist die Grammatik mit den Regeln:
oder kurz:
Man sieht, dass es zur Erzeugung einer Sprache mehrere (genaugenommen: abzählbar unendlich viele) Grammatiken gibt.
Siehe auch
- Graphgrammatik
- Backus-Naur-Form und Erweiterte Backus-Naur-Form
- Syntaxtheorie zu (formalen) Grammatiken in der Linguistik
Literatur
- Katrin Erk, Lutz Priese: Theoretische Informatik: eine umfassende Einführung. 2., erw. Auflage. Springer-Verlag, 2002, ISBN 3-540-42624-8, S. 53-61.
Weblinks
Wikimedia Foundation.