Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Chomsky-Hierarchie

Sie ist eine Hierarchie von Klassen formaler Grammatiken, die formale Sprachen erzeugen, und wurde 1956 erstmals von Noam Chomsky beschrieben. Die …

Inhalt5 Abschnitte
  1. 1. Kernidee der Chomsky-Hierarchie
  2. 2. Formale Sprachen und Grammatiken
  3. 3. Die vier Grammatiktypen
  4. 4. Erzeugte Sprachen, Automaten und Entscheidbarkeit
  5. 5. Beispiele und natürliche Sprachen

Kernidee der Chomsky-Hierarchie

Die Chomsky-Hierarchie ist eine Einteilung formaler Grammatiken und der von ihnen erzeugten formalen Sprachen in vier Typen: Typ 0, Typ 1, Typ 2 und Typ 3. Die Typen unterscheiden sich durch die Einschränkungen für die Form ihrer Produktionsregeln. Typ 0 ist uneingeschränkt; von Typ 1 bis Typ 3 werden die Regeln zunehmend stärker beschränkt.

Eine Grammatik eines niedrigeren Typs ist ausdrucksmächtiger als eine Grammatik eines höheren Typs. Daher gilt für die Sprachklassen die echte Teilmengenbeziehung L₃ ⊂ L₂ ⊂ L₁ ⊂ L₀, gelegentlich auch REG ⊂ CF ⊂ CS ⊂ RE. Jede reguläre Sprache ist also kontextfrei, jede kontextfreie Sprache kontextsensitiv und jede kontextsensitive Sprache rekursiv aufzählbar. Die Umkehrungen gelten nicht.

Der Vorteil eingeschränkter Grammatiktypen besteht darin, dass die erzeugten Sprachen meist einfacher und schneller algorithmisch verarbeitet werden können. Reguläre Ausdrücke und endliche Automaten eignen sich beispielsweise für schnelle Textsuche. Für die Syntax der meisten Programmiersprachen werden dagegen meist kontextfreie Grammatiken verwendet.

Formale Sprachen und Grammatiken

Eine formale Sprache basiert auf einem Alphabet Σ, also einem vorgegebenen Zeichenvorrat. Ein Wort ist eine beliebig lange, endliche Folge von Zeichen dieses Alphabets. Eine formale Sprache ist eine Menge solcher Wörter. Die umfassendste Sprache über Σ ist Σ*, die Kleenesche Hülle des Alphabets; sie enthält alle durch beliebiges Zusammenfügen von Zeichen aus Σ gebildeten Wörter. Die kleinste Sprache enthält kein Wort. Für Σ = {a,b} besteht die Sprache aller Wörter der Länge 2 beispielsweise aus L = {aa, ab, ba, bb}.

Unendliche Sprachen können nicht durch vollständiges Aufzählen beschrieben werden. Deshalb verwendet man Erzeugungsverfahren. Semi-Thue-Systeme erlauben Ersetzungsregeln α → β: Enthält ein Wort das Segment α, darf dieses durch β ersetzt werden. Formale Grammatiken erweitern dieses Prinzip um Terminal- und Nichtterminalsymbole. Terminalsymbole sind die Zeichen des Alphabets Σ. Nichtterminalsymbole dienen als Zwischenzeichen. Eine Ableitung beginnt beim Nichtterminalsymbol S, dem Startsymbol. Ein Ergebnis gehört erst dann zur erzeugten Sprache, wenn es keine Nichtterminalsymbole mehr enthält.

Beispielhaft kann die Sprache beliebig langer Summen aus den Ziffern 1, 2 und 3 beschrieben werden. Das Alphabet ist Σ = {+,1,2,3}; die Regeln lauten:

Summe → Ziffer Summe → Summe + Ziffer Ziffer → 1 | 2 | 3

Eine mögliche Ableitung ist Summe ⇒ Summe + Ziffer ⇒ Ziffer + Ziffer ⇒ 1 + Ziffer ⇒ 1 + 2. Das Ergebnis 1+2 enthält nur noch Terminalsymbole und ist daher ein Wort der Sprache.

Uneingeschränkte formale Grammatiken und Turingmaschinen sind gleichmächtig: Zu jeder von einer solchen Grammatik erzeugten Sprache gibt es eine Turingmaschine, die genau diese Sprache akzeptiert, und umgekehrt.

Die vier Grammatiktypen

Typ 0: Eine Typ-0-Grammatik ist eine unbeschränkte Grammatik und hat die Form G = (V,T,P,S). Dabei ist V = T ∪ N das Vokabular aus dem endlichen Alphabet T der Terminalsymbole und der disjunkten Menge N der Nichtterminalsymbole. S ∈ N ist das Startsymbol. Die Produktionsregeln erfüllen P ⊆ (V* \ T*) × V* = VNV × V*: Auf der linken Seite muss also mindestens ein Nichtterminalsymbol stehen. Ansonsten ist die Gestalt der Regeln uneingeschränkt.

Typ-1: Eine kontextsensitive Grammatik ist eine Typ-0-Grammatik, deren Regeln die Form αAβ → αγβ oder S → ε haben. A ist ein Nichtterminal, α, β und γ bestehen aus Terminalen und Nichtterminalen, wobei γ mindestens ein Symbol enthalten muss. Die Regel S → ε ist nur erlaubt, wenn das Startsymbol S auf keiner rechten Seite vorkommt. Die Regeln sind längenbeschränkt: Die rechte Seite ist nicht kürzer als die linke. Anders als bei Typ 2 dürfen links ganze Symbolfolgen stehen, sofern sie mindestens ein Nichtterminal enthalten.

Typ 2: Bei einer kontextfreien Grammatik hat jede Regel die Form A → γ mit A ∈ N und γ ∈ V⁺. Links steht genau ein Nichtterminalsymbol; rechts darf eine beliebige nichtleere Folge von Terminal- und Nichtterminalsymbolen stehen. Die Ausnahmeregel S → ε kann zugelassen werden, wenn S auf keiner rechten Seite vorkommt. Häufig werden kontextfreie Grammatiken allgemeiner definiert und Regeln mit leerer rechter Seite erlaubt; diese erfüllen dann nicht mehr alle Eigenschaften der ursprünglichen Typ-2-Definition.

Typ 3: Eine reguläre Grammatik ist eine Typ-2-Grammatik mit besonders eingeschränkten rechten Seiten. Erlaubt sind rechtsreguläre Regeln A → aB oder A → a sowie linksreguläre Regeln A → Ba oder A → a; A,B ∈ N und a ∈ T. Es darf entweder nur die linksreguläre oder nur die rechtsreguläre Form verwendet werden. Werden beide Formen in einer Grammatik gemischt, ist sie nicht regulär, da dadurch eine echt größere Sprachklasse entsteht. Regeln A → ε werden üblicherweise zugelassen. Linksreguläre und rechtsreguläre Grammatiken erzeugen dieselbe Sprachklasse.

Erzeugte Sprachen, Automaten und Entscheidbarkeit

Typ-0-Grammatiken erzeugen genau die rekursiv aufzählbaren, auch semi-entscheidbaren Sprachen. Eine Turingmaschine akzeptiert jedes Wort, das zur Sprache gehört. Bei einem nicht enthaltenen Wort kann sie jedoch unendlich weiterlaufen und muss keine Entscheidung liefern. Das unterscheidet rekursiv aufzählbare Sprachen von rekursiven beziehungsweise entscheidbaren Sprachen, bei denen die Turingmaschine für jedes Wort anhält.

Typ-1-Grammatiken erzeugen genau die kontextsensitiven Sprachen. Diese werden von nichtdeterministischen, linear beschränkten Turingmaschinen erkannt. Das Band ist dabei durch die Eingabelänge beschränkt: Es gibt eine konstante Zahl a, sodass höchstens a · x Felder verwendet werden, wenn x die Länge des Eingabewortes ist.

Typ-2-Grammatiken erzeugen genau die kontextfreien Sprachen. Sie entsprechen den Sprachen, die von nichtdeterministischen Kellerautomaten (NPDA) erkannt werden können. Eine Teilmenge der kontextfreien Sprachen bildet die theoretische Grundlage für die Syntax der meisten Programmiersprachen. Zur Beschreibung werden auch die äquivalenten Schemata Backus-Naur-Form (BNF) und Erweiterte Backus-Naur-Form (EBNF) verwendet.

Typ-3-Grammatiken erzeugen genau die regulären Sprachen. Diese können auch durch reguläre Ausdrücke beschrieben und von endlichen Automaten erkannt werden. Sie werden häufig für Suchmuster und die lexikalische Struktur von Programmiersprachen eingesetzt.

Beim Wortproblem wird geprüft, ob ein Wort zu einer Sprache gehört. Für Typ 0 gibt es keine allgemeine Entscheidbarkeit; das Wortproblem wird nur semi-entschieden. Für Typ 1 ist das Wortproblem entscheidbar. Für Typ 2 sind Wort-, Leerheits- und Endlichkeitsproblem entscheidbar. Für Typ 3 sind zusätzlich das Äquivalenz- und das Schnittproblem entscheidbar. Als Zeitabschätzungen nennt die Übersicht für Typ 1 O(2ⁿ), für Typ 2 O(n³) und für Typ 3 O(n); Typ 0 ist unbeschränkt.

Bei den Abschlussoperationen sind Typ-0-Sprachen unter Konkatenation, Schnitt, Vereinigung und Kleeneschem Abschluss abgeschlossen. Typ-1-Sprachen zusätzlich unter Komplementbildung; Typ-2-Sprachen unter Konkatenation, Vereinigung und Kleeneschem Abschluss; Typ-3-Sprachen unter Komplement, Konkatenation, Schnitt, Vereinigung und Kleeneschem Abschluss. Dabei bedeutet ε das leere Wort, P die Menge der Produktionsregeln, V⁺ die positive Hülle und V* die Kleenesche Hülle.

Beispiele und natürliche Sprachen

Typische Beispiele für die strenge Sprachhierarchie sind L₁ = {aⁿbⁿcⁿ | n ≥ 1}, eine Sprache vom Typ 1, aber nicht vom Typ 2, und L₂ = {aⁿbⁿ | n ≥ 1}, eine Sprache vom Typ 2, aber nicht vom Typ 3. Nachweise für die Nichtzugehörigkeit zu den Klassen Typ 2 und Typ 3 werden häufig mit dem Schleifensatz geführt.

Für natürliche Sprachen ist bis heute für keine Sprache der Nachweis einer korrekten und vollständigen formalen Grammatik gelungen. Schwierigkeiten entstehen unter anderem durch das Zusammenspiel verschiedener Grammatikteile und durch Mehrdeutigkeiten auf mehreren Ebenen der Sprachbeschreibung. In der Computerlinguistik müssen solche Mehrdeutigkeiten, etwa bei maschineller Übersetzung, anhand des Kontextes aufgelöst werden.

Natürliche Sprachen sind im Allgemeinen nicht regulär, weil sie beispielsweise zentrale Einbettungen erlauben. Das Pumping-Lemma für kontextfreie Sprachen zeigt, dass die dadurch beschriebene Sprache L = {aⁿbᵐcᵐdⁿ | n,m > 0} nicht regulär ist. Außerdem reichen kontextfreie Grammatiken nicht aus, um natürliche Sprache vollständig zu beschreiben. Ein Beispiel sind kreuzende Dependenzen im Schweizerdeutschen. Die entsprechende Sprache L = {aⁿbᵐcⁿdᵐ | n,m > 0} ist nicht kontextfrei.

Lernvideos zu Chomsky-Hierarchie

Weiterlesen

Theoretische Informatik Ihre Inhalte sind die Automatentheorie, die Theorie der formalen Sprachen, die Berechenbarkeits- und Komplexitätstheorie, aber auch die Logik und formale … Klasse (Mengenlehre) Eine Klasse ist eine Zusammenfassung von bestimmten, wohlunterschiedenen Objekten, die Elemente genannt werden, zu einem Ganzen. Dabei werden „Klassen“ aus … Formale Grammatik Formale Grammatiken werden mithilfe von Semi-Thue-Systemen angegeben in der Chomsky-Hierarchie klassifiziert. Formale Sprache Eine formale Sprache ist eine abstrakte Sprache, bei der im Unterschied zu natürlichen Sprachen oft nicht die Kommunikation im Vordergrund steht, … Alphabet (Informatik) Sie stellen das Zeicheninventar für Wörter zur Verfügung und bilden damit die Grundlage für formale Sprachen. Man muss unterscheiden zwischen dem Alphabet aus … Automat (Informatik) Ein Automat oder eine abstrakte Maschine ist in der Informatik, speziell in der Automatentheorie, das Modell eines digitalen, zeitdiskreten Rechners. Turingmaschine Eine Turingmaschine ist ein mathematisches Modell der theoretischen Informatik, das eine abstrakte Maschine definiert. Bei diesem Rechnermodell werden nach … Regulärer Ausdruck Ein regulärer Ausdruck (englisch regular expression, Abkürzung RegExp oder Regex) ist in der theoretischen Informatik eine Zeichenkette, … Kartesisches Produkt Das kartesische Produkt oder Mengenprodukt ist in der Mengenlehre eine grundlegende Konstruktion, aus gegebenen Mengen eine neue Menge zu erzeugen. Rekursive Sprache Der Vorteil ist, dass man alle Entscheidungsprobleme auf Sprachen zurückführen kann; diese können u. a. durch (Chomsky-)Grammatiken beschrieben werden: Eine … Ableitung (Informatik) Eine formale Grammatik ist ein mathematisches Modell, das eine Menge solcher ableitbaren Wörter festlegt. Diese Menge nennt man eine formale Sprache. Das … Kontextsensitive Sprache Die kontextsensitiven Sprachen (englisch context-sensitive languages, abgekürzt durch CSL) sind eine Klasse der formalen Sprachen, einem Teilgebiet der …