<?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_Sprache</id>
	<title>Formale Sprache - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Formale_Sprache"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Formale_Sprache&amp;action=history"/>
	<updated>2026-05-15T11:29:59Z</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_Sprache&amp;diff=1180&amp;oldid=prev</id>
		<title>imported&gt;Aka: typografische Anführungszeichen, Komma ergänzt</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Formale_Sprache&amp;diff=1180&amp;oldid=prev"/>
		<updated>2024-08-13T10:33:24Z</updated>

		<summary type="html">&lt;p&gt;typografische Anführungszeichen, Komma ergänzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;formale Sprache&amp;#039;&amp;#039;&amp;#039; ist eine [[Abstraktion|abstrakte]] [[Sprache]], bei der im Unterschied zu [[Natürliche Sprache|natürlichen Sprachen]] oft nicht die [[Kommunikation]] im Vordergrund steht, sondern die Definition und Anwendung [[Formales System|formaler Systeme]] im engeren Sinn und der [[Logik]] im weiteren, allgemeinen Sinn. Eine formale Sprache besteht aus einer bestimmten Menge von Symbolketten (im Allgemeinen [[Zeichenkette]]n) („Wörter“ der Sprache), die aus einem [[Alphabet (Informatik)|Zeichen-/Symbolvorrat]] („Alphabet“, Grundsymbole) zusammengesetzt werden können. Während die Logik die Begrifflichkeit „Formale Sprache“ untersucht, finden formale Sprachen z.&amp;amp;nbsp;B. in der [[Mathematik]], in der [[Linguistik]] und der [[Theoretische Informatik|theoretischen Informatik]] eine praktische Anwendung.&lt;br /&gt;
&lt;br /&gt;
Formale Sprachen eignen sich zur (logisch) präzisen Beschreibung des Umgangs mit Zeichenketten. So können zum Beispiel [[Datenformat]]e oder ganze Programmiersprachen spezifiziert werden. Zusammen mit einer [[Formale Semantik|formalen Semantik]] erhalten die definierten Zeichenketten eine (logische) Bedeutung. Bei einer Programmiersprache kann damit einer Programmieranweisung (als Teil der formalen Sprache) ein eindeutiges Maschinenverhalten (als Teil der [[Semantik]]) zugeordnet werden.&lt;br /&gt;
&lt;br /&gt;
Aufbauend auf formalen Sprachen können aber auch Logik[[kalkül]]e definiert werden, mit denen mathematische Schlüsse gezogen werden können. In Verbindung mit formal definierten Programmiersprachen können Kalküle helfen, Programme auf ihre [[Korrektheit (Informatik)|Korrektheit]] zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Eine formale Sprache &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; über einem Alphabet &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; ist eine Teilmenge der [[Kleenesche Hülle|Kleeneschen Hülle]] des Alphabets: &amp;lt;math&amp;gt;L \subseteq \Sigma^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;Alphabet&amp;#039;&amp;#039;&amp;#039; &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; legt die Zeichen fest, aus denen ein &amp;#039;&amp;#039;&amp;#039;Wort&amp;#039;&amp;#039;&amp;#039; der Sprache gebildet werden kann. Zum Beispiel kann man die Dezimaldarstellung jeder [[Natürliche Zahl|natürlichen Zahl]] aus dem Alphabet &amp;lt;math&amp;gt;\Sigma = \{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 \}&amp;lt;/math&amp;gt; bilden.&lt;br /&gt;
&lt;br /&gt;
Alle aus einem gegebenen Alphabet &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; beliebig bildbaren [[Wort (Theoretische Informatik)|Wörter]] mit endlicher Länge (Länge 0 oder länger), deren jeder einzelne Buchstabe Element von &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; ist, diese größtmögliche Wortmenge zum Alphabet &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, nennt man die &amp;#039;&amp;#039;Kleenesche Hülle&amp;#039;&amp;#039; des Alphabetes &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, kurz &amp;lt;math&amp;gt;\Sigma^*&amp;lt;/math&amp;gt;. Eine formale Sprache über einem Alphabet &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; ist also eine bestimmte [[Teilmenge]] der Kleeneschen Hülle ihres Alphabets – im Allgemeinen ist also &amp;#039;&amp;#039;nicht&amp;#039;&amp;#039; jede beliebige Zeichenkombination ein gültiges Wort der Sprache.&lt;br /&gt;
&lt;br /&gt;
Formale Sprachen können leer, endlich oder unendlich sein; maximal können sie die gesamte Kleenesche Hülle ihres Alphabetes umfassen. Sie können über eine mathematische Bedingung an ihre Wörter definiert sein: „Die Sprache … ist die Menge aller Wörter, für die gilt …“.&lt;br /&gt;
&lt;br /&gt;
Die in der theoretischen Informatik auftretenden Sprachen sind jedoch meistens spezieller durch ein bestimmtes Ersetzungsverfahren definiert – Regeln, wie die Alphabet-Zeichen kombiniert sein/werden dürfen. Von den Ersetzungsverfahren gibt es verschiedene Typen: [[Semi-Thue-System]]e, [[Chomsky-Hierarchie|Chomsky-Grammatiken]], [[Lindenmayer-System]]e u.&amp;amp;nbsp;a. Bei solchen Ersetzungsverfahren geht man beispielsweise von einer spezifischen Start-Zeichenkette aus, die man durch wiederholte („rekursive“) Anwendung der Regeln (Text-Ersetzungen) schrittweise in Wortgebilde überführt, die dann als ganzes, oder nur ein vorgegebener Abschnitt davon, als Wörter der Sprache gelten. Man redet hier auch von &amp;#039;&amp;#039;generativen Grammatiken&amp;#039;&amp;#039;, weil die Wörter einer Sprache über solche Textsubstitutionen schrittweise &amp;#039;&amp;#039;erzeugt&amp;#039;&amp;#039; werden. Umgekehrt kann man Sprachen auch definieren als die Menge aller Wörter, aus denen (über das Ersetzungsverfahren der Sprache) ein bestimmtes vorgegebenes Wort oder eines von mehreren vorgegebenen Wörtern erzeugbar ist. („Es gehört alles zur Sprache, was sich über die Regeln auf … zurückführen lässt.“)&lt;br /&gt;
&lt;br /&gt;
== Abgrenzung von natürlichen Sprachen ==&lt;br /&gt;
Mit Hilfe formaler Sprachen können auch [[natürliche Sprache]]n modelliert werden, vor allem deren Syntax. Beim Vergleich formaler Sprachen mit natürlichen Sprachen ist aber zu beachten, dass natürliche Sprachen oberhalb der elementaren &amp;#039;&amp;#039;Laut-Zeichen&amp;#039;&amp;#039; mindestens die zwei übereinander liegenden Hierarchieebenen des &amp;#039;&amp;#039;Wortes&amp;#039;&amp;#039; und des &amp;#039;&amp;#039;Satzes&amp;#039;&amp;#039; besitzen. Die Regeln für deren Aufbau trennt man gewöhnlich in [[Morphologie (Sprache)|Morphologie]] zum einen und in [[Syntax]] zum anderen. In formalen Sprachen dagegen liegt über dem elementaren Alphabet-Zeichen oft nur die eine Hierarchieebene des formalen &amp;#039;&amp;#039;[[Wort (Theoretische Informatik)|Wortes]]&amp;#039;&amp;#039;, man redet im Hinblick auf den Bau der Wörter formalsprachlich von Syntax. Wenn eine natürliche Sprache mittels einer formalen modelliert wird, dann werden also die Sätze der natürlichen Sprache in formalsprachlicher Betrachtung &amp;#039;&amp;#039;Wörter&amp;#039;&amp;#039; genannt.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
# Die [[Programmiersprache]] [[C (Programmiersprache)|C]] ist eine formale Sprache. Die Wörter von C sind die jeweiligen Programme. Das Alphabet von C sind die [[Schlüsselwort (Programmierung)|Schlüsselwörter]] und Zeichen, die in der Definition von C festgelegt sind.&lt;br /&gt;
# Die natürlichen Zahlen in unärer Darstellung: &amp;lt;math&amp;gt;\mathbb{N}_{\rm un} := \{\varepsilon,1,11,111,1111,\ldots \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Die unäre Sprache über &amp;lt;math&amp;gt;\{a\}&amp;lt;/math&amp;gt;, die nur Wörter quadratischer Länge enthält: &amp;lt;math&amp;gt;{\rm quad\_count} := \{ a^{(n^2)} \mid n\in\mathbb N\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Die Sprache, die &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;s gefolgt von &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;s enthält: &amp;lt;math&amp;gt;{\rm count}_2 := \{ a^nb^n \mid n\in\mathbb N\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Die Sprache, die &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;s gefolgt von &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;s gefolgt von &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;s enthält: &amp;lt;math&amp;gt;{\rm count}_3 := \{ a^nb^nc^n \mid n\in\mathbb N\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Die Sprache aller [[Palindrom (Theoretische Informatik)|Palindrome]]: &amp;lt;math&amp;gt;{\rm pal} := \{w \in \{0,1\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;, wobei &amp;lt;math&amp;gt;w^R&amp;lt;/math&amp;gt; die [[Spiegelung (Wort)|Spiegelung]] des Wortes &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ist.&lt;br /&gt;
# Die Dezimalkodierung der Primzahlen: &amp;lt;math&amp;gt;{\rm prim}_{\rm dec} := \{{\rm dec}(p) \mid p \in {\rm PRIM} \}&amp;lt;/math&amp;gt;. &amp;lt;br /&amp;gt; Hierbei bezeichnet &amp;lt;math&amp;gt;{\rm dec}\colon \mathbb{N} \rightarrow \{0,1,2,3,4,5,6,7,8,9\}^*&amp;lt;/math&amp;gt; die Kodierung der natürlichen Zahlen im [[Dezimalsystem]] und PRIM steht für die Menge der [[Primzahl]]en.&lt;br /&gt;
# Die [[Morsefolge|Morse-]] oder [[Morsefolge|Thue-Folge]]: &amp;lt;math&amp;gt;{\rm thue} := \{ h^n_t(0) \mid n\in\mathbb{N} \}&amp;lt;/math&amp;gt;, &amp;lt;br /&amp;gt; wobei &amp;lt;math&amp;gt;h_t&amp;lt;/math&amp;gt; ein [[Homomorphismus]] ist, der folgendermaßen definiert ist: &amp;lt;math&amp;gt;h_t(\varepsilon)=\varepsilon&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;h_t(w0):= h_t(w)01&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;h_t(w1):= h_t(w)10&amp;lt;/math&amp;gt;. &amp;lt;br /&amp;gt; Somit sind die ersten Elemente der Thue-Folge: 0, 01, 0110, 01101001, 0110100110010110 …&lt;br /&gt;
&lt;br /&gt;
== Operationen auf formalen Sprachen ==&lt;br /&gt;
Zwei Sprachen &amp;lt;math&amp;gt;L_1&amp;lt;/math&amp;gt; über dem Alphabet &amp;lt;math&amp;gt;\Sigma_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; über dem Alphabet &amp;lt;math&amp;gt;\Sigma_2&amp;lt;/math&amp;gt; sind banalerweise beide Sprachen auch über &amp;lt;math&amp;gt;\Sigma_1 \cup \Sigma_2&amp;lt;/math&amp;gt;, also Mengen von Wörtern aus &amp;lt;math&amp;gt;(\Sigma_1 \cup \Sigma_2)^*&amp;lt;/math&amp;gt;. Deshalb sind auch&lt;br /&gt;
* die [[Vereinigungsmenge|Vereinigung]] &amp;lt;math&amp;gt;L_1 \cup L_2&amp;lt;/math&amp;gt;&lt;br /&gt;
* der [[Durchschnittsmenge|Durchschnitt]] &amp;lt;math&amp;gt;L_1 \cap L_2&amp;lt;/math&amp;gt;&lt;br /&gt;
* die [[Differenzmenge|Differenz]] &amp;lt;math&amp;gt;L_1 \setminus L_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Sprachen über &amp;lt;math&amp;gt;\Sigma_1 \cup \Sigma_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Weitere Operationen auf Sprachen sind:&lt;br /&gt;
&lt;br /&gt;
=== Konkatenation ===&lt;br /&gt;
&amp;lt;!-- Hinweis: Der Artikel [[Konkatenation (Formale Sprache)]] verweist auf diese Überschrift--&amp;gt;&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Konkatenation&amp;#039;&amp;#039;&amp;#039; zweier Sprachen &amp;lt;math&amp;gt;L_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; ist die Sprache der Wörter, die durch Hintereinanderschreibung ([[Konkatenation (Wort)|Konkatenation]]) je eines beliebigen Wortes &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;L_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt; entsteht:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 \circ L_2 := \{ uv \mid u \in L_1, v \in L_2 \}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So sind zum Beispiel die Konkatenationen von verschiedenen Sprachen über dem Alphabet &amp;lt;math&amp;gt;\Sigma = \{ a ,\, b \}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\{ a  \} \circ \{ ab \} = \{ aab \}&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\{ a ,\, bb \} \circ \{ aa ,\, b \} = \{ aaa ,\, ab ,\, bbaa ,\, bbb \}&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\{ abb ,\, bab \} \circ \{ \varepsilon ,\, aab ,\, bb \} = \{ abb ,\, bab ,\, abbaab ,\, babaab ,\, abbbb ,\, babbb \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das [[Neutrales Element|neutrale Element]] der Konkatenation ist die Sprache, welche nur das [[Leeres Wort|leere Wort]] enthält. So gilt für jede beliebige Sprache &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L \circ \{ \varepsilon \} = \{ \varepsilon \} \circ L = L&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das [[Absorbierendes Element|absorbierende Element]] der Konkatenation ist die leere Sprache, sodass für jede Sprache &amp;lt;math&amp;gt;L \subseteq \Sigma^*&amp;lt;/math&amp;gt; gilt:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L \circ \{ \} = \{ \} \circ L = \{ \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Konkatenation von Sprachen ist wie die Konkatenation von Wörtern [[Assoziativgesetz|assoziativ]], aber nicht [[Kommutativgesetz|kommutativ]]. So ist zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(\{ a ,\, bab \} \circ \{ a ,\, b \}) \circ \{ ab \} = \{ a ,\, bab \} \circ (\{ a ,\, b \} \circ \{ ab \}) = \{ aaab ,\, abab ,\, babaab ,\, babbab \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aber:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\{ a ,\, bab \} \circ \{ a ,\, b \} = \{ aa ,\, ab ,\, baba ,\, babb \} \not= \{ aa ,\, abab ,\, ba ,\, bbab \} = \{ a ,\, b \} \circ \{ a ,\, bab \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da außerdem die [[Potenzmenge]] der [[Kleenesche Hülle|Kleeneschen Hülle]] eines beliebigen Alphabets &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; (die gleich der Menge aller Sprachen ist, die aus &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; gebildet werden können) [[Abgeschlossenheit (algebraische Struktur)|abgeschlossen]] bezüglich Konkatenation ist, bildet sie zusammen mit der Konkatenation als Operator und der Sprache des leeren Wortes als neutrales Element ein [[Monoid]].&lt;br /&gt;
&lt;br /&gt;
=== Potenz ===&lt;br /&gt;
&amp;lt;!-- Hinweis: Der Artikel [[Potenz (Formale Sprache)]] verweist auf diese Überschrift--&amp;gt;&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Potenz&amp;#039;&amp;#039;&amp;#039; &amp;lt;math&amp;gt;L^n&amp;lt;/math&amp;gt; einer Sprache ist die &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-fache Konkatenation dieser Sprache mit sich selbst. Sie ist rekursiv definiert mit:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L^0 := \{\varepsilon\}&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;L^{n+1} := L^n \circ L&amp;lt;/math&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(für &amp;lt;math&amp;gt;n \in \mathbb{N}_0&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
So sind zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\lbrace aa ,\, abab ,\, bbab ,\, ba \rbrace^0 = \lbrace \varepsilon \rbrace&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\lbrace a ,\, b \rbrace^2 = \lbrace a ,\, b \rbrace^1 \,\circ\, \lbrace a ,\, b \rbrace = (\lbrace a ,\, b \rbrace^0 \,\circ\, \lbrace a ,\, b \rbrace) \,\circ\, \lbrace a ,\, b \rbrace = (\lbrace \varepsilon \rbrace \,\circ\, \lbrace a ,\, b \rbrace) \,\circ\, \lbrace a ,\, b \rbrace = \lbrace aa ,\, ab ,\, ba ,\, bb \rbrace&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\lbrace a \rbrace^4 = \lbrace a \rbrace \,\circ\, \lbrace a \rbrace \,\circ\, \lbrace a \rbrace \,\circ\, \lbrace a \rbrace = \lbrace aaaa \rbrace&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Speziellen gilt für jede einelementige, formale Sprache &amp;lt;math&amp;gt;L = \lbrace w \rbrace&amp;lt;/math&amp;gt; (mit &amp;lt;math&amp;gt;w \in \Sigma^\ast &amp;lt;/math&amp;gt;) und jedes &amp;lt;math&amp;gt;n \in \mathbb{N}_0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L^n = \lbrace w \rbrace^n = \lbrace w^n \rbrace&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kleene-*-Abschluss und Kleene-+-Abschluss ===&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Kleene-*-Abschluss&amp;#039;&amp;#039;&amp;#039; &amp;lt;math&amp;gt;L^*&amp;lt;/math&amp;gt; (Kleenesche Hülle, auch &amp;#039;&amp;#039;&amp;#039;Iteration&amp;#039;&amp;#039;&amp;#039; genannt) und der &amp;#039;&amp;#039;&amp;#039;Kleene-+-Abschluss&amp;#039;&amp;#039;&amp;#039; &amp;lt;math&amp;gt;L^+&amp;lt;/math&amp;gt; (positive Hülle) einer formalen Sprache &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; sind definiert über die [[Vereinigungsmenge|Vereinigung]] der Potenzsprachen von &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L^* := \bigcup_{i\in\mathbb N_0}L^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
:&amp;lt;math&amp;gt;L^+ := \bigcup_{i\in\mathbb N} L^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Siehe auch|Kleenesche und positive Hülle}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Substitution fehlt --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wichtige formale Sprachklassen ==&lt;br /&gt;
# [[Noam Chomsky]] hat 1956 eine Hierarchie von [[Formale Grammatik|formalen Grammatiken]] aufgestellt, die verschiedene Typen von formalen Sprachen erzeugen.&amp;lt;ref&amp;gt;Chomsky, Noam (1956). &amp;quot;Three models for the description of language&amp;quot;. IRE Transactions on Information Theory (2): 113–124.&amp;lt;/ref&amp;gt; Diese ist heute unter dem Namen [[Chomsky-Hierarchie]] bekannt. Hier wird unterschieden zwischen Typ&amp;amp;nbsp;0, Typ&amp;amp;nbsp;1, Typ&amp;amp;nbsp;2 und Typ&amp;amp;nbsp;3: [[Rekursiv aufzählbare Sprache|Rekursiv aufzählbare]], [[Kontextsensitive Sprache|kontextsensitive]], [[Kontextfreie Sprache|kontextfreie]] bzw. [[Reguläre Sprache|reguläre]] Sprachen.&lt;br /&gt;
# [[Aristid Lindenmayer]] hat ein Regelsystem vorgeschlagen, in dem Ersetzungsschritte in jedem Schritt an jeder Stelle parallel durchgeführt werden. Diese Systeme heißen [[Lindenmayer-System]]e.&lt;br /&gt;
# Mit [[Semi-Thue-System]]en lassen sich Sprachen festlegen, die aus Startwörtern abgeleitet werden.&lt;br /&gt;
# Mit [[Church-Rosser-System]]en werden Sprachen erklärt, deren Wörter sich auf ein Terminalwort reduzieren lassen.&lt;br /&gt;
# [[Termersetzungssystem]]e erzeugen die Menge von Termen, die zu einem Ausgangsterm äquivalent sind.&lt;br /&gt;
# Verallgemeinerungen von formalen Sprachen erhalten wir mit [[Graphgrammatik]]en, mit denen wir Graphsprachen erzeugen können.&lt;br /&gt;
# [[Hypergraphgrammatik]]en erzeugen [[Hypergraph]]en, eine Verallgemeinerung von Graphen.&lt;br /&gt;
&lt;br /&gt;
== Historisches ==&lt;br /&gt;
Als eine der ersten formalen Sprachen wird [[Gottlob Frege]]s &amp;#039;&amp;#039;[[Begriffsschrift]]&amp;#039;&amp;#039; erachtet&amp;lt;ref&amp;gt;Martin Davis (1995). &amp;#039;&amp;#039;Influences of Mathematical Logic on Computer Science.&amp;#039;&amp;#039; In Rolf Herken. The universal Turing machine: a half-century survey. Springer. S. 290, ISBN 978-3-211-82637-9.&amp;lt;/ref&amp;gt;, eine wie Frege schrieb „Formelsprache des reinen Denkens“. [[Axel Thue]]s im Jahre 1914&amp;lt;ref&amp;gt;Ronald V. Book, Friedrich Otto: &amp;#039;&amp;#039;String-rewriting Systems.&amp;#039;&amp;#039; Springer, 1993, ISBN 0-387-97965-4, S. 36.&amp;lt;/ref&amp;gt; eingeführtes [[Semi-Thue-System]], das verwendet werden kann, um Zeichenketten zu transformieren, hatte ebenfalls Einfluss auf die Entwicklung formaler Grammatiken.&lt;br /&gt;
&lt;br /&gt;
=== Zitat ===&lt;br /&gt;
Die heutige Grundlagenforschung ist beherrscht {{Zitat| […] vom Geist der Mathematik. […] Sie ist durchmathematisiert bis an die äußersten Grenzen dessen, was heute auf Grund einer weit vorgerückten Formalisierungstechnik erreicht werden kann. Das Ziel dieser Forschung ist ein ziemlich hochliegendes Ziel. Es ist die Beherrschung einer möglichst großen Zahl von möglichst tiefliegenden Problemen aus dem Bereich der Grundlagenforschung mit einer Art von Genauigkeit, die als ‚Genauigkeit in den kleinsten Teilen‘ bezeichnet werden kann. […]&lt;br /&gt;
&lt;br /&gt;
Die angestrebte Genauigkeit kann wie in der Mathematik nur durch die Schöpfung von &amp;#039;&amp;#039;&amp;#039;Präzisionssprachen&amp;#039;&amp;#039;&amp;#039; erreicht werden, die angestrebte Genauigkeit in den kleinsten Teilen nur durch die Schöpfung von Präzisionssprachen, deren Genauigkeitsgrad den Genauigkeitsgrad auch der höchstentwickelten mathematischen Präzisionssprache des gegenwärtigen Zeitalters, der Sprache der [[Mengenlehre]] und der Sprache der modernen [[abstrakte Algebra|Algebra]] wesentlich übertrifft. […] Eine solche Präzisionssprache ist eine formalisierte wissenschaftliche Sprache. […] ein Rüstzeug, dessen Leistungsfähigkeit mit dem Auflösungsvermögen eines [[Elektronenmikroskop]]s verglichen werden kann. […] [[Gottfried Wilhelm Leibniz|Leibniz]] ist der erste gewesen, der Präzisionssprachen von diesem Genauigkeitsgrad gefordert hat. |[[Heinrich Scholz (Logiker)|Heinrich Scholz]] im Jahre 1941: Eine neue Gestalt der Grundlagenforschung&amp;lt;ref&amp;gt;In: &amp;#039;&amp;#039;Forschungen und Fortschritte&amp;#039;&amp;#039; Nr. 35/36, Jahrgang 1941, S. 382&amp;amp;nbsp;ff.&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Heinrich Scholz traf sich 1944 mit [[Konrad Zuse]], der im Zuge seiner Doktorarbeit an seinem [[Plankalkül]] arbeitete. Im März 1945 sprach ihm Scholz für die Anwendung seines Logikkalküls seine Anerkennung aus.&amp;lt;ref&amp;gt;[[Hartmut Petzold]]: &amp;#039;&amp;#039;Moderne Rechenkünstler. Die Industrialisierung der Rechentechnik in Deutschland.&amp;#039;&amp;#039; C.H. Beck Verlag, München 1992.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[konstruierte Sprache]]&lt;br /&gt;
* [[Computersprache]]&lt;br /&gt;
* [[:Kategorie:Formale Sprache]] – Auflistung von formalen Sprachen&lt;br /&gt;
Anwendungen siehe in:&lt;br /&gt;
* [[Berechenbarkeitstheorie]]&lt;br /&gt;
* [[Komplexitätstheorie]]&lt;br /&gt;
* [[Kryptographie]]&lt;br /&gt;
* [[Kryptoanalyse]]&lt;br /&gt;
* [[Compilerbau]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Lars Peter Georgie: &amp;#039;&amp;#039;Berechenbarkeit, Komplexität, Logik&amp;#039;&amp;#039;. Vieweg, Braunschweig/Wiesbaden,&lt;br /&gt;
** Eine dritte Auflage erschien 1995.&lt;br /&gt;
** Englische Ausgabe: &amp;#039;&amp;#039;Computability, Complexity, Logic&amp;#039;&amp;#039;. Erschienen in der Reihe: &amp;#039;&amp;#039;Studies in logic and the foundations of mathematics&amp;#039;&amp;#039;. North Holland, Amsterdam 1985.&lt;br /&gt;
:: &amp;lt;small&amp;gt;Eine Darstellung der formalen Sprachen im Kontext der Berechenbarkeitstheorie, Logik und Komplexitätstheorie. Stellt hohe Anforderungen an den Leser, liefert dafür tiefe Einblicke.&amp;lt;/small&amp;gt;&lt;br /&gt;
* Michael A. Harrison: &amp;#039;&amp;#039;Introduction to Formal Language Theory&amp;#039;&amp;#039;. Erschienen in der Reihe: &amp;#039;&amp;#039;Series in Computer Science.&amp;#039;&amp;#039; Addison-Wesley, 1978.&lt;br /&gt;
:: &amp;lt;small&amp;gt;Eine sehr ausführliche und viel gelobte Einführung.&amp;lt;/small&amp;gt;&lt;br /&gt;
* [[John E. Hopcroft]] und [[Jeffrey Ullman|Jeffrey D. Ullman]]: &amp;#039;&amp;#039;Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie&amp;#039;&amp;#039;. Addison-Wesley, 1988.&lt;br /&gt;
** Englisches Original: &amp;#039;&amp;#039;Introduction to Automata Theory, Languages and Computation&amp;#039;&amp;#039;. Addison-Wesley, 1979.&lt;br /&gt;
** Eine überarbeitete dritte Auflage auf Deutsch erschien 1994 bei der Oldenbourg R. Verlag GmbH. Im Jahr 2004 erschien bei Addison-Wesley eine zweite überarbeitete Auflage.&lt;br /&gt;
:: &amp;lt;small&amp;gt;Das englische Original ist das in der theoretischen Informatik am häufigsten zitierte Buch. Die Beweise sind in älteren deutschen Übersetzungen gelegentlich falsch wiedergegeben. Dieses Buch ist in zahlreiche Sprachen übersetzt worden.&amp;lt;/small&amp;gt;&lt;br /&gt;
* Grzegorz Rozenberg und Arto Salomaa: &amp;#039;&amp;#039;The Mathematical Theory of L-Systems&amp;#039;&amp;#039;. Academic Press, New York 1980.&lt;br /&gt;
:: &amp;lt;small&amp;gt;Das ausführlichste Buch über L-Systeme.&amp;lt;/small&amp;gt;&lt;br /&gt;
* Grzegorz Rozenberg und Arto Salomaa (Herausgeber): &amp;#039;&amp;#039;Handbook of Formal Languages&amp;#039;&amp;#039;. Volume I-III, Springer, 1997, ISBN 3-540-61486-9.&lt;br /&gt;
:: &amp;lt;small&amp;gt;Eine ausführliche Übersicht über die wichtigsten Gebiete der formalen Sprachen dargestellt jeweils von aktiv in diesem Gebiet arbeitenden Wissenschaftlern.&amp;lt;/small&amp;gt;&lt;br /&gt;
* Arto Salomaa: &amp;#039;&amp;#039;Formale Sprachen&amp;#039;&amp;#039;. Springer, 1978.&lt;br /&gt;
** Englisches Original: &amp;#039;&amp;#039;Formal Languages&amp;#039;&amp;#039;. Academic Press, 1973.&lt;br /&gt;
* Ingo Wegener: &amp;#039;&amp;#039;Theoretische Informatik&amp;#039;&amp;#039;. Teubner, Stuttgart 1993, ISBN 3-519-02123-4.&lt;br /&gt;
:: &amp;lt;small&amp;gt;In der Darstellung der Formalen Sprachen wird stets die Komplexität der formalsprachlichen Konstruktionen mitbehandelt. Diese ist sonst nur in der Originalliteratur zu finden.&amp;lt;/small&amp;gt;&lt;br /&gt;
* U. Hedtstück: &amp;#039;&amp;#039;Einführung in die Theoretische Informatik – Formale Sprachen und Automatentheorie&amp;#039;&amp;#039;. Oldenbourg Verlag, München 2000, ISBN 3-486-25515-0.&lt;br /&gt;
* S. Abramsky, Dov M. Gabbay, T.S.E. Maibaum (eds.): &amp;#039;&amp;#039;Handbook of logic in computer science. Vol. 5: Logical and algebraic methods.&amp;#039;&amp;#039; Oxford University Press 2000, ISBN 0-19-853781-6.&lt;br /&gt;
* Mogens Nielsen, Wolfgang Thomas: &amp;#039;&amp;#039;Computer Science Logic.&amp;#039;&amp;#039; Springer 1998, ISBN 3-540-64570-5&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=4017848-1|LCCN=|NDL=|VIAF=}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Formale Sprachen| ]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>