<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Formale_Grammatik</id>
	<title>Formale Grammatik - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Formale_Grammatik"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Formale_Grammatik&amp;action=history"/>
	<updated>2026-04-04T11:03:11Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Formale_Grammatik&amp;diff=14574&amp;oldid=prev</id>
		<title>imported&gt;PaulT: /* Definition */ nicht immer wieder verlinken</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Formale_Grammatik&amp;diff=14574&amp;oldid=prev"/>
		<updated>2025-03-04T21:37:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Definition: &lt;/span&gt; nicht immer wieder verlinken&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Formale Grammatiken&amp;#039;&amp;#039;&amp;#039; sind [[Mathematisches Modell|mathematische Modelle]] von [[Grammatik]]en, die zur eindeutigen Erzeugung und Beschreibung [[Formale Sprache|formaler Sprachen]] dienen. Sie werden in der [[Theoretische Informatik|theoretischen Informatik]], insbesondere in der [[Berechenbarkeitstheorie]], und im [[Compilerbau]] zum einen angewendet, um eindeutig festzulegen, ob ein [[Wort (Theoretische Informatik)|Wort]] Element einer Sprache ist und zum anderen, um Eigenschaften dieser formalen Sprachen zu untersuchen bzw. zu beweisen. Formale Grammatiken werden mithilfe von [[Semi-Thue-System|Semi-Thue-Systemen]] angegeben in der [[Chomsky-Hierarchie]] klassifiziert.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Mit einer formalen Grammatik lassen sich ausgehend von einem Startsymbol &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; (auch &amp;#039;&amp;#039;Startvariable&amp;#039;&amp;#039; genannt) [[Produktionsregel]]n aus einer Regelmenge &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; anwenden, die aus dem Startsymbol neue Zeichenfolgen ([[Wort (Theoretische Informatik)|Wörter]]) erzeugen, welche wiederum weiter ersetzt werden können. Diesen Vorgang nennt man auch [[Ableitung (Informatik)|Ableitung]].&lt;br /&gt;
&lt;br /&gt;
Das Vokabular &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; einer Grammatik, bestehend aus der [[disjunkt]]en Vereinigung eines [[Alphabet (Informatik)|Alphabets]] &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; von [[Terminalsymbol]]en mit einer Menge von [[Nichtterminalsymbol]]en &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, gibt dabei vor, welche Symbole dafür verwendet werden können. Die Menge der Terminalsymbole definiert, aus welchen Zeichen Wörter bestehen, die nicht weiter abgeleitet werden können. Diese Wörter ergeben zusammengenommen die von der Grammatik beschriebene formale Sprache. Das Startsymbol muss dagegen ein Nichtterminalsymbol sein. Zusätzliche Nichtterminalsymbole erlauben differenziertere Regeln.&lt;br /&gt;
&lt;br /&gt;
Produktionsregeln sind definitionsgemäß [[Geordnetes Paar|geordnete Paare]] &amp;lt;math&amp;gt;(\alpha,\beta)&amp;lt;/math&amp;gt;, die auch &amp;lt;math&amp;gt;\alpha \rightarrow \beta&amp;lt;/math&amp;gt; geschrieben werden. Man wendet sie auf eine Zeichenfolge &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; an, indem ein Vorkommen der Zeichenfolge &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; durch &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; ersetzt wird. Auf der linken Seite der Regel muss immer mindestens ein Nichtterminalsymbol stehen. Eine Menge von Regeln mit gleicher linker Seite, also &amp;lt;math&amp;gt;\alpha \rightarrow \beta_1,\; \ldots, \alpha \rightarrow \beta_n&amp;lt;/math&amp;gt;, wird abkürzend auch als &amp;lt;math&amp;gt;\alpha \rightarrow \beta_1 \;|\; \ldots \;|\; \beta_n&amp;lt;/math&amp;gt; geschrieben.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel kann man mit der Regelmenge &amp;lt;math&amp;gt;X\rightarrow +\;|\;-&amp;lt;/math&amp;gt; die Zeichenfolge &amp;lt;math&amp;gt;1X2&amp;lt;/math&amp;gt; entweder zu &amp;lt;math&amp;gt;1+2&amp;lt;/math&amp;gt; oder zu &amp;lt;math&amp;gt;1-2&amp;lt;/math&amp;gt; ableiten.&lt;br /&gt;
&lt;br /&gt;
Ebenso wie auf eine gegebene Zeichenfolge mehrere Regeln gleichzeitig anwendbar sein können, muss es nicht immer nur eine Stelle in der Zeichenfolge geben, auf die eine Regel passt. Formale Grammatiken schreiben keine Reihenfolge vor. Alle nur aus Terminalsymbolen bestehenden Wörter, die sich aus dem Startsymbol ableiten lassen, zählen zur von der Grammatik beschriebenen Sprache.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Eine formale Grammatik wird dargestellt durch das 4-[[Tupel]] &amp;lt;math&amp;gt;G = (V, T, P, S)&amp;lt;/math&amp;gt;, worin:&amp;lt;ref&amp;gt;{{Literatur |Autor=Peter Bachmann |Titel=Grundlagen der Theoretischen Informatik |Ort=Cottbus |Datum=2001 |Seiten=47 |Kommentar=Vorlesungsskript |Online=http://www.informatik.tu-cottbus.de/~wwwpscb/lehre/GTI/vorl/skript.pdf |Format=PDF |KBytes= |Abruf=2011-02-12}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt;, einer endlichen Menge von &amp;#039;&amp;#039;Symbolen&amp;#039;&amp;#039;, welche als &amp;#039;&amp;#039;Symbolmenge&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Vokabular&amp;#039;&amp;#039; bezeichnet wird,&lt;br /&gt;
* &amp;lt;math&amp;gt;T \subset V&amp;lt;/math&amp;gt;, einer Teilmenge von &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt;, auch &amp;#039;&amp;#039;[[Alphabet (Informatik)|Alphabet]]&amp;#039;&amp;#039; genannt und deren Elemente &amp;#039;&amp;#039;[[Terminalsymbol]]e&amp;#039;&amp;#039; heißen,&lt;br /&gt;
* &amp;lt;math&amp;gt;P \subset \left( V^* \setminus T^* \right) \times V^*&amp;lt;/math&amp;gt;, einer endlichen Menge von [[Produktionsregel]]n, sowie&lt;br /&gt;
* &amp;lt;math&amp;gt;S\in V\setminus T&amp;lt;/math&amp;gt;, dem &amp;#039;&amp;#039;Startsymbol&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Das 4-[[Tupel]] wird je nach Konvention auch so definiert, dass &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; der Menge der &amp;#039;&amp;#039;Nichtterminalsymbole&amp;#039;&amp;#039; entspricht, sodass &amp;lt;math&amp;gt;V \cap T = \emptyset&amp;lt;/math&amp;gt; ist.&amp;lt;ref&amp;gt;{{Literatur |Autor=Christian Wagenknecht, Michael Hielscher |Titel=Formale Sprachen, Abstrakte Automaten und Compiler |Verlag=Springer Vieweg |Ort=Wiesbaden |Datum=2014 |Seiten=28 |DOI=10.1007/978-3-658-02692-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei bezeichnet &amp;lt;math&amp;gt;X^*&amp;lt;/math&amp;gt; die [[Kleenesche Hülle]] einer Menge &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; von Zeichen (oder auch Wörtern).&lt;br /&gt;
&lt;br /&gt;
Die Menge &amp;lt;math&amp;gt;N = V\setminus T&amp;lt;/math&amp;gt; ist die Menge von &amp;#039;&amp;#039;Nichtterminalsymbolen&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;Nonterminale&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Metasymbole&amp;#039;&amp;#039; genannt), insbesondere gehört das Startzeichen zu ihr. Das Wort auf der linken Seite der Regelpaare darf nicht ausschließlich aus Terminalzeichen bestehen, was man auch durch eine [[Formale Sprache#Konkatenation|Konkatenation]] ausdrücken kann:&lt;br /&gt;
:&amp;lt;math&amp;gt;\left( V^* \setminus T^* \right) = V^*NV^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Es ergibt wenig Sinn, wenn das Wort auf der rechten Seite das Startsymbol enthält. Manche Autoren berücksichtigen das, indem sie die zugehörige Menge entsprechend beschränken, d.&amp;amp;nbsp;h. &amp;lt;math&amp;gt;V^*&amp;lt;/math&amp;gt; durch &amp;lt;math&amp;gt;(V \setminus \{S\})^*&amp;lt;/math&amp;gt; ersetzen.&lt;br /&gt;
&lt;br /&gt;
Manche Autoren bezeichnen alternativ das Quadrupel &amp;lt;math&amp;gt;(N, T, P, S)&amp;lt;/math&amp;gt; als Grammatik &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. Es finden sich darüber hinaus folgende abweichenden Bezeichnungen:&amp;lt;ref&amp;gt;Während die Bedeutung von &amp;lt;math&amp;gt;T, N&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; bzw. &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; im gegebenen Fall jeweils klar ist, muss man sich bei &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; (ebenso wie dem häufig benutzten &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;) durch Überprüfung des Kontexts klarmachen, was gemeint ist; wobei man sich auf das Grammatik-Quadrupels &amp;#039;&amp;#039;&amp;#039;nicht&amp;#039;&amp;#039;&amp;#039; verlassen kann.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; für die &amp;#039;&amp;#039;Terminalzeichen&amp;#039;&amp;#039;, hier &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;,&lt;br /&gt;
* &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; für das gesamte &amp;#039;&amp;#039;Vokabular&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Symbolmenge&amp;#039;&amp;#039;) aller &amp;#039;&amp;#039;Symbole&amp;#039;&amp;#039;, hier &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt;,&lt;br /&gt;
* &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; für die Nichtterminalzeichen (&amp;#039;&amp;#039;Variablen&amp;#039;&amp;#039;), hier &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;,&amp;lt;ref name=&amp;quot;KR1994&amp;quot;&amp;gt;Klaus Reinhardt: {{Webarchiv |url=http://users.informatik.uni-halle.de/~ahyjb/dis.pdf |text=Prioritatszahlerautomaten und die Synchronisation von Halbspursprachen |wayback=20180117143012 |archiv-bot=2019-04-11 10:04:42 InternetArchiveBot}}, Fakultät Informatik der Universität Stuttgart; Doktorarbeit 1994. Das Grammatik-Quadrupel ist hier wörtlich mit &amp;lt;math&amp;gt;(V,\Sigma,P,S)&amp;lt;/math&amp;gt; angegeben, damit ist in der hier gewählten Bezeichnungsweise &amp;lt;math&amp;gt;(N,T,P,S)&amp;lt;/math&amp;gt; gemeint.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; für das leere Wort, hier &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;.&amp;lt;ref name=&amp;quot;KR1994&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Die von einer Grammatik beschriebene Sprache{{Anker|erzeugte_Sprache}} ==&lt;br /&gt;
Eine Regel &amp;lt;math&amp;gt;R\rightarrow Q \in P&amp;lt;/math&amp;gt; einer gegebenen Grammatik &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; besagt, dass in einem Wort &amp;lt;math&amp;gt;w \in V^\ast&amp;lt;/math&amp;gt; mit R als [[Infix (Theoretische Informatik)|Infix]], R durch Q ersetzt werden kann, so dass ein neues Wort &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; als Infix entsteht. Man spricht hierbei auch davon, dass &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; mit der Grammatik &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; bzw. durch die Regel &amp;lt;math&amp;gt;R \rightarrow Q&amp;lt;/math&amp;gt; übergeht, oder auch, dass &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; abgeleitet wurde. Dies kann durch &amp;lt;math&amp;gt;w \rightsquigarrow_{R \rightarrow Q} w^\prime&amp;lt;/math&amp;gt; notiert werden (häufig auch &amp;lt;math&amp;gt;\Rightarrow&amp;lt;/math&amp;gt; anstatt &amp;lt;math&amp;gt;\rightsquigarrow&amp;lt;/math&amp;gt;). Soll nur ausgedrückt werden, dass in der Grammatik &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; das Wort &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; entstehen kann, ohne eine Regel zu benennen, schreibt man stattdessen &amp;lt;math&amp;gt;w \rightsquigarrow_G w^\prime&amp;lt;/math&amp;gt; (ist die Grammatik aus dem Kontext offensichtlich, auch einfach &amp;lt;math&amp;gt;w \rightsquigarrow w^\prime&amp;lt;/math&amp;gt;). Demnach ist ein solcher Übergang von &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; eine [[Transitionsrelation]], die eine natürliche Erweiterung von &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; auf alle möglichen &amp;lt;math&amp;gt;V^*&amp;lt;/math&amp;gt;-Kontexte darstellt, nämlich:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\rightsquigarrow\;:=\;\{(u \circ R \circ v, u \circ Q \circ v) | (R,Q)\in P, u,v\in V^*\}&amp;lt;/math&amp;gt;,&lt;br /&gt;
wobei hier &amp;lt;math&amp;gt;\circ&amp;lt;/math&amp;gt; die [[Formale Sprache#Konkatenation|Konkatenation]] von Wörtern bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Gibt es nun eine Folge von Wörtern &amp;lt;math&amp;gt;w_0, w_1, \ldots, w_n \in V^\ast&amp;lt;/math&amp;gt;, bei der gilt, dass für jede natürliche Zahl &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;0 \le i &amp;lt; n&amp;lt;/math&amp;gt; das Wort &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w_{i+1}&amp;lt;/math&amp;gt; übergeht (&amp;lt;math&amp;gt;w_i \rightsquigarrow_G w_{i+1}&amp;lt;/math&amp;gt;), so ist &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Schritten aus &amp;lt;math&amp;gt;w_0&amp;lt;/math&amp;gt; ableitbar, was durch &amp;lt;math&amp;gt;w_0 \rightsquigarrow_G^n w_n&amp;lt;/math&amp;gt; dargestellt wird. Eine solche Wortfolge &amp;lt;math&amp;gt;w_0, w_1, \ldots, w_n&amp;lt;/math&amp;gt; wird &amp;#039;&amp;#039;[[Ableitung (Informatik)|Ableitung]]&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Rechnung&amp;#039;&amp;#039; von &amp;lt;math&amp;gt;w_0&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w_n&amp;lt;/math&amp;gt; der Länge &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; genannt. Weiterhin heißt &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; ableitbar, wenn es mindestens ein &amp;lt;math&amp;gt;n \in \mathbb{N}_0&amp;lt;/math&amp;gt; gibt, so dass &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Schritten aus &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ableitbar ist. Wenn &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;w^\prime&amp;lt;/math&amp;gt; ableitbar ist, so wird dies durch die Schreibweise &amp;lt;math&amp;gt;w \rightsquigarrow_G^\ast w^\prime&amp;lt;/math&amp;gt; dargestellt. Dabei wird zusätzlich definiert, dass für jedes Wort &amp;lt;math&amp;gt;w \in V^\ast&amp;lt;/math&amp;gt; gilt, dass &amp;lt;math&amp;gt;w \rightsquigarrow_G^\ast w&amp;lt;/math&amp;gt; ist, so dass die Relation &amp;lt;math&amp;gt;\rightsquigarrow_G^\ast&amp;lt;/math&amp;gt; die [[reflexiv-transitive Hülle]] der Relation &amp;lt;math&amp;gt;\rightsquigarrow_G&amp;lt;/math&amp;gt; ist.&lt;br /&gt;
&lt;br /&gt;
Nun ist die von der Grammatik &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; erzeugte formale Sprache &amp;lt;math&amp;gt;L(G)&amp;lt;/math&amp;gt; diejenige Sprache, die aus allen Wörtern besteht, die zum einen nur aus Terminalsymbolen bestehen und die zum anderen vom Startsymbol mit einer endlichen Anzahl von Schritten abgeleitet werden können:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;L \left( G \right) := \left\{ w \in T^* | S \rightsquigarrow_G^* w \right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; abzuleiten. Zwei Grammatiken &amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;G_2&amp;lt;/math&amp;gt; sind genau dann [[Äquivalenzrelation|äquivalent]], wenn die durch &amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;G_2&amp;lt;/math&amp;gt; erzeugten Sprachen gleich sind:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;G_1 \mathrm{\ ist\ \ddot{a}quivalent\ zu\ } G_2: \Longleftrightarrow L(G_1) = L(G_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn alle Terminalzeichen in den Wörtern der formalen Sprachen vorkommen, dann müssen die Terminalzeichen übereinstimmen. Die Nichtterminalzeichen sind dagegen völlig frei.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; sei eine Grammatik mit den Terminalsymbolen &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;, den Nichtterminalsymbolen &amp;lt;math&amp;gt;\{S, A, B\}&amp;lt;/math&amp;gt;, dem Startsymbol &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; und mit den Regeln&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{matrix}&lt;br /&gt;
 S&amp;amp;\to&amp;amp;ABS&amp;amp;\,(1)\\&lt;br /&gt;
 S&amp;amp;\to&amp;amp;\varepsilon&amp;amp;\,(2)\\&lt;br /&gt;
 BA&amp;amp;\to&amp;amp;AB&amp;amp;\,(3)\\&lt;br /&gt;
 BS&amp;amp;\to&amp;amp;b&amp;amp;\,(4)\\&lt;br /&gt;
 Bb&amp;amp;\to&amp;amp;bb&amp;amp;\,(5)\\&lt;br /&gt;
 Ab&amp;amp;\to&amp;amp;ab&amp;amp;\,(6)\\&lt;br /&gt;
 Aa&amp;amp;\to&amp;amp;aa&amp;amp;\,(7)&lt;br /&gt;
\end{matrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; das [[Leeres Wort|leere Wort]], welches ein Wort der Länge 0 ist. Diese Grammatik &amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; definiert die Sprache aller Wörter der Form &amp;lt;math&amp;gt;a^n b^n&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;n \in \mathbb N_0&amp;lt;/math&amp;gt;. So sind auf Grund der folgenden Ableitungen die Wörter &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;ab&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;aabb&amp;lt;/math&amp;gt; Elemente der durch &amp;lt;math&amp;gt;G_1&amp;lt;/math&amp;gt; beschriebenen Sprache:&lt;br /&gt;
* &amp;lt;math&amp;gt;S\rightsquigarrow\varepsilon&amp;lt;/math&amp;gt;, mittels Regel (2),&lt;br /&gt;
* &amp;lt;math&amp;gt;S\rightsquigarrow ABS\rightsquigarrow Ab\rightsquigarrow ab&amp;lt;/math&amp;gt;, mittels der Regeln (1), (4) und (6),&lt;br /&gt;
* &amp;lt;math&amp;gt;S\rightsquigarrow ABS\rightsquigarrow ABABS\rightsquigarrow ABAb\rightsquigarrow AABb\rightsquigarrow AAbb\rightsquigarrow Aabb\rightsquigarrow aabb&amp;lt;/math&amp;gt;, mittels der Regeln (1),(1),(4),(3), (5), (6) und (7).&lt;br /&gt;
&lt;br /&gt;
Es gibt aber noch andere Möglichkeiten, um das Wort &amp;lt;math&amp;gt;aabb&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; abzuleiten.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Grammatik, die dieselbe Sprache beschreibt, ist die [[Kontextfreie Grammatik|kontextfreie]] Grammatik &amp;lt;math&amp;gt;G_2&amp;lt;/math&amp;gt; mit den Regeln:&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{matrix}S&amp;amp;\to&amp;amp;aSb\ |\ \varepsilon\end{matrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jede [[Rekursive Aufzählbarkeit|rekursiv aufzählbare]] Sprache wird von mehreren (und zwar [[Abzählbarkeit|abzählbar unendlich vielen]]) Grammatiken erzeugt.&lt;br /&gt;
Allerdings gibt es auch Sprachen, die sich von keiner Grammatik erzeugen lassen.&lt;br /&gt;
&lt;br /&gt;
== Klassen von Grammatiken ==&lt;br /&gt;
Grammatiken werden Klassen zugeordnet, die sich durch Gemeinsamkeiten auszeichnen. Die bekannteste Klassifikation beschrieben [[Noam Chomsky]] und [[Marcel Schützenberger]] mit der [[Chomsky-Hierarchie]].&lt;br /&gt;
&lt;br /&gt;
=== Chomsky-Hierarchie ===&lt;br /&gt;
Die [[Chomsky-Hierarchie]] teilt die Grammatiken nach der Art der Produktionsregeln in Klassen vom Typ 0 bis Typ 3 ein:&lt;br /&gt;
* Typ-0-Grammatiken: [[Phrasenstrukturgrammatik]]en sind uneingeschränkte formale Grammatiken.&lt;br /&gt;
* Typ-1-Grammatiken: [[Kontextsensitive Grammatik]]en dürfen nur aus Regeln bestehen, in denen genau ein Nichtterminalsymbol durch eine Zeichenfolge ersetzt wird. Dieses Symbol darf auf der linken Seite der Regel auch von weiteren Symbolen umgeben sein, die einen Kontext angeben, innerhalb dessen die Ersetzung stattfinden muss.&lt;br /&gt;
* Typ-2-Grammatiken: In [[Kontextfreie Grammatik|kontextfreien Grammatiken]] darf dagegen auf den linken Seiten der Regeln jeweils nur genau ein Nichtterminalsymbol stehen. Das Symbol kann dann unabhängig vom Kontext ersetzt werden.&lt;br /&gt;
* Typ-3-Grammatiken: Bei [[Reguläre Grammatik|regulären Grammatiken]] enthalten die linken Seiten der Regeln ebenfalls nur genau ein Nichtterminalsymbol. Bei linksregulären Grammatiken darf die rechte Seite der Regel aus höchstens einem Nichtterminalsymbol bestehen, dem höchstens ein Terminalsymbol folgt (Bsp.: &amp;lt;math&amp;gt;X \to Ya&amp;lt;/math&amp;gt;). Bei rechtsregulären Grammatiken darf hingegen die rechte Seite aus höchstens einem Terminalsymbol bestehen, dem höchstens ein Nichtterminal folgt (Bsp.: &amp;lt;math&amp;gt;X \to aY &amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Die zugehörigen Sprachklassen sind abnehmend umfangreich. Es besteht folgende echte [[Teilmenge|Inklusionsbeziehung]]:&lt;br /&gt;
&lt;br /&gt;
Für die Sprachklassen &amp;lt;math&amp;gt;L_n&amp;lt;/math&amp;gt; von Typ &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;n \in \{0, 1, 2, 3\}&amp;lt;/math&amp;gt; gilt: &amp;lt;math&amp;gt;L_3 \subset L_2 \subset L_1 \subset L_0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Sprachklassen ===&lt;br /&gt;
Von der Chomsky-Hierarchie abgesehen haben sich weitere Klassen an Grammatiken etabliert:&lt;br /&gt;
* [[Monotone Grammatik]]en beschreiben die gleiche Sprachklasse wie die kontextsensitiven Grammatiken. Etwas strenger sind die [[Wachsend kontextsensitive Sprache|wachsend kontextsensitiven Grammatiken]], die eine Teilklasse der kontextsensitiven Sprachklasse beschreiben.&lt;br /&gt;
* [[Deterministisch kontextfreie Grammatik]]en beschreiben die [[Deterministisch kontextfreie Sprache|deterministisch kontextfreien Sprachen]]. Sie werden auch durch die [[LR(k)-Grammatik]]en beschrieben, welche für den Compilerbau von Bedeutung sind. Andere im Compilerbau bekannte Grammatiken sind [[LL(k)-Grammatik]]en und [[LF(k)-Grammatik]]en.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Graphgrammatik]]&lt;br /&gt;
* [[Backus-Naur-Form]] und [[Erweiterte Backus-Naur-Form]]&lt;br /&gt;
* [[Syntaxtheorie]] zu (formalen) Grammatiken in der [[Linguistik]]&lt;br /&gt;
* [[Kommunizierendes Grammatik-System]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Katrin Erk, Lutz Priese&lt;br /&gt;
   |Titel=Theoretische Informatik. Eine umfassende Einführung&lt;br /&gt;
   |Auflage=2. erweiterte&lt;br /&gt;
   |Verlag=Springer-Verlag&lt;br /&gt;
   |Ort=Berlin u. a.&lt;br /&gt;
   |Datum=2002&lt;br /&gt;
   |ISBN=3-540-42624-8&lt;br /&gt;
   |Seiten=53–61}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.grundstudium.info/theorie/node38.php Website zum Thema Grammatik]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4154991-0}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Theorie formaler Sprachen]]&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;/div&gt;</summary>
		<author><name>imported&gt;PaulT</name></author>
	</entry>
</feed>