Kontextfreie Sprache

Kontextfreie Sprache

In der Theoretischen Informatik ist eine kontextfreie Sprache (engl. context-free language, CFL) eine formale Sprache, die durch eine kontextfreie Grammatik beschrieben werden kann. Eine kontextfreie Grammatik erlaubt einen definierten Leseprozess (Interpretation) von Ausdrücken einer formalen Sprache. Dabei kann zum einen entschieden werden, ob ein Ausdruck den Regeln der Grammatik entspricht, und zum anderen im Verlauf der Analyse ein Syntaxbaum erstellt werden. Ein Programm, das dies leistet, heißt Parser. Parser werden insbesondere zur Verarbeitung von Programmiersprachen verwendet. Auch in der Computerlinguistik versucht man, natürliche Sprachen durch Regeln kontextfreier Grammatiken zu beschreiben.

Kontextfreie Sprachen werden auch als Typ-2-Sprachen der Chomsky-Hierarchie bezeichnet. Die Klasse aller kontextfreien Sprachen beinhaltet die regulären Sprachen (Typ-3-Sprachen) und wird von der Klasse der kontextsensitiven Sprachen (Typ-1-Sprachen) umfasst.

Man spricht deshalb von kontextfreien Sprachen, weil die Regeln der kontextfreien Grammatiken immer vom Kontext unabhängig angewendet werden. Das unterscheidet sie von kontextsensitiven Grammatiken, deren Regeln auch vom syntaktischen Kontext abhängen.

Inhaltsverzeichnis

Charakterisierung

Die Klasse der kontextfreien Sprachen entspricht der Klasse der von nichtdeterministischen Kellerautomaten akzeptierten Sprachen. Die von deterministischen Kellerautomaten akzeptierten Sprachen werden als deterministisch kontextfreie Sprachen bezeichnet und sind identisch mit der Klasse der LR(k)-Sprachen (vgl. LR(k)-Grammatik).

Beispiele

Besteht ein Alphabet aus den Symbolen a und b, sind folgende Sprachen Beispiele für kontextfreie Sprachen:

  • L_1=\{a^nb^n|n\in\mathbb{N}\}
  • L_2=\{vv^{R}\mathbb{}| v\text{ besteht aus beliebig vielen }a\text{s und }b\text{s}\}

Die Sprache L1 enthält die Wörter: ab, aabb, aaabbb usw., also immer so viele as wie bs. Wählt man statt a und b die Symbole ( und ), entspricht das der korrekt verschachtelten Klammerung: etwa (()) oder ((())).

Die Sprache L2 enthält die Wörter aa, abba, abaaba, abbbba usw., also alle Wörter, die in der Mitte spiegelsymmetrisch sind. Da sie von vorne und hinten gelesen das gleiche Wort ergeben, sind es Palindrome.

Die Sprache L_3=\{a^n b^n c^n|n\in\mathbb{N}\} ist kontextsensitiv, aber nicht kontextfrei.

Kontextfreie Sprachen finden in der Definition der Syntax von Programmiersprachen Anwendung, es lassen sich zum Beispiel arithmetische Ausdrücke und allgemein korrekte Klammerstrukturen festlegen. Grenzen der kontextfreien Sprachen liegen bei kontextrelevanten Eigenschaften, wie z. B. der Typüberprüfung in Programmiersprachen, die sich nur durch kontextsensitive Grammatiken darstellen lassen. In der Praxis verwendet man aber kontextfreie Parser mit zusätzlichen Funktionen und Datenstrukturen.

In der Computerlinguistik werden mit kontextfreien Grammatiken natürliche Sprachen nachgebildet. Besteht ein Alphabet aus Wörtern einer Sprache, zum Beispiel der,Baum,Satz, kann man mit wenigen Regeln einfache Nominalphrasen konstruieren: Durch die Regeln NP \rightarrow der\, N und N\rightarrow Baum\mid Satz sind der\, Baum und der\, Satz korrekte Ausdrücke in der Grammatik.

Eigenschaften

Die Klasse der kontextfreien Sprachen ist abgeschlossen unter der

Sie ist nicht abgeschlossen unter

Der Abschluss unter Vereinigung lässt sich durch Konstruktion einer neuen, wiederum kontextfreien Grammatik nachweisen: Seien G1 = (N1,T11,{S1}) und G2 = (N2,T22,{S2}) kontextfrei. Neues Startsymbol S und neue Produktion S:: = S1 | S2. \Rightarrow L(G_1) \cup L(G_2) = L(G) mit G = (N_1 \cup N_2 \cup \{S\}, T_1 \cup T_2, \{S ::= S_1|S_2\} \cup \Pi_1 \cup \Pi_2, \{S\})

Genauso kann man für zwei kontextfreie Sprachen die Abgeschlossenheit unter Konkatenation zeigen: Seien G1 = (N1,T11,{S1}) und G2 = (N2,T22,{S2}) kontextfrei. Neues Startsymbol S und neue Produktion S:: = S1S2. \Rightarrow L(G_1)L(G_2) = L(G) mit G = (N_1 \cup N_2 \cup \{S\}, T_1 \cup T_2, \{S ::= S_1S_2\} \cup \Pi_1 \cup \Pi_2, \{S\})

Auch die Anwendung von Kleene-* entspricht einer neuen, kontextfreien Grammatik: Sei G = (N,T,Π,{S}) kontextfrei. Neues Startsymbol Sneu und neue Produktion Sneu:: = SneuS. \Rightarrow L(G)^* = L(G_1) mit G_1 = (N \cup \{S_{neu}\}, T, \{S_{neu} ::= S_{neu}S|\epsilon\} \cup \Pi, \{S_{neu}\})


Jede reguläre Sprache ist auch kontextfrei, da jede reguläre Grammatik auch eine kontextfreie Grammatik ist. Es existieren kontextsensitive Sprachen, die nicht kontextfrei sind. Ein solches Beispiel ist \{a^nb^nc^n | n \geq 0\}. Pumping-Lemmas existieren jeweils in verschiedenen Varianten für reguläre und kontextfreie Sprachen. Für kontextfreie Sprachen beschreiben sie notwendige aber nicht hinreichende Eigenschaften. Der Nachweis, dass eine formale Sprachen nicht kontextfrei ist, wird in der Regel über die Verletzung dieser notwendigen Eigenschaften geführt. Oft wird die untersuchte Sprache zunächst durch den Schnitt mit einer regulären Sprache geeignet ausgedünnt. Dieses Vorgehen ist durch den oben genannten Abschluss unter Schnitt mit regulären Sprachen gerechtfertigt.

Ein seit langem offenes Problem ist die Frage, ob die Menge der primitiven Wörter kontextfrei ist.

Typische Entscheidungsprobleme

Seien L, L1 und L2 gegebene kontextfreie Sprachen über dem Alphabet Σ. Dann ergeben sich folgende typische Problemstellungen:

Die oben aufgezählten Probleme sind bei kontextfreien Sprachen entscheidbar (das Wortproblem durch den Cocke-Younger-Kasami-Algorithmus). Das Äquivalenzproblem (L1 = L2) ist ab einschließlich dieser Stufe der Chomsky-Hierarchie nicht mehr entscheidbar.

Weitergehende Eigenschaften

  • DLIN \subsetneq DCFL \subsetneq CFL \subsetneq GCSL \subsetneq CSL
  • REG \subsetneq DLIN \subsetneq LIN \subsetneq CFL
  • Für jedes n\in\mathbb{N} gibt es Sprachen, die sich als Schnitt von n kontextfreien Sprachen darstellen lassen, aber nicht als Schnitt von n − 1 kontextfreien Sprachen.

Natürliche Sprache

In der Linguistik werden kontextfreie Grammatiken auch zur Beschreibung der Syntax natürlicher Sprachen eingesetzt. Es wurde aber zum Beispiel für das Schweizerdeutsch nachgewiesen, dass die Sprache sich nicht vollständig mit einer solchen Grammatik beschreiben lässt.[1] Vielfach werden aber in der Computerlinguistik kontextfreie Grammatiken (oder äquivalente Formalismen) mit zusätzlichen Datenstrukturen auch für Sprachen wie Schweizerdeutsch verwendet.

Literatur

  • Uwe Schöning: Theoretische Informatik - kurzgefasst. 4. Auflage. Berlin 2003, Spektrum, ISBN 3-8274-1099-1.
  • Stuart M. Shieber: Evidence against the context-freeness of natural language. In: Linguistics and Philosophy 8, 1985, 3, ISSN 0924-4662, S. 333–343.
  • John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. 2. überarbeitete Auflage. Pearson Studium, München 2002, ISBN 3-8273-7020-5.
  • Leonard Y. Liu, Peter Weiner: An Infinite Hierarchy of Intersections of Context-Free Languages. In: Mathematical Systems Theory 7, 1973, ISSN 0025-5661, S. 185–192.

Quellen

  1. Stuart M. Shieber; Evidence against the context-freeness of natural language; In Linguistics and Philosophiy 8; 1985 (pdf)

Siehe auch

  • Backus-Naur-Form, eine kompakte formale Metasprache zur Darstellung kontextfreier Grammatiken.

Weblinks

  • CFL. In: Complexity Zoo. (englisch)

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Deterministisch kontextfreie Sprache — Eine deterministisch kontextfreie Sprache ist eine Sprache, die von einem deterministischen Kellerautomaten akzeptiert wird. Manchmal wird auch der gekürzte Begriff deterministische Sprache verwendet. Die Definition geht auf Seymour Ginsburg und… …   Deutsch Wikipedia

  • Kontextfreie Grammatik — In der Theorie der formalen Sprachen ist eine kontextfreie Grammatik eine Grammatik, die nur solche Ersetzungsregeln enthält, bei denen immer genau ein Nichtterminal auf eine beliebig lange Folge von Nichtterminalen und Terminale abgeleitet wird …   Deutsch Wikipedia

  • Kontextfreie Grammatiken — Die kontextfreien Grammatiken sind eine Klasse formaler Grammatiken und sind identisch mit den Typ 2 Grammatiken der Chomsky Hierarchie. Inhaltsverzeichnis 1 Definition 2 Normalformen 3 Von G erzeugte Sprache 4 Eigenschaften …   Deutsch Wikipedia

  • Typ-0-Sprache — Chomsky Hierarchie, gelegentlich Chomsky–Schützenberger Hierarchie, (benannt nach dem Linguisten Noam Chomsky und dem Mathematiker Marcel Schützenberger) ist ein Begriff aus der Theoretischen Informatik und bezeichnet eine Hierarchie von Klassen… …   Deutsch Wikipedia

  • Typ-1-Sprache — Chomsky Hierarchie, gelegentlich Chomsky–Schützenberger Hierarchie, (benannt nach dem Linguisten Noam Chomsky und dem Mathematiker Marcel Schützenberger) ist ein Begriff aus der Theoretischen Informatik und bezeichnet eine Hierarchie von Klassen… …   Deutsch Wikipedia

  • Typ-2-Sprache — Chomsky Hierarchie, gelegentlich Chomsky–Schützenberger Hierarchie, (benannt nach dem Linguisten Noam Chomsky und dem Mathematiker Marcel Schützenberger) ist ein Begriff aus der Theoretischen Informatik und bezeichnet eine Hierarchie von Klassen… …   Deutsch Wikipedia

  • Typ-3-Sprache — Chomsky Hierarchie, gelegentlich Chomsky–Schützenberger Hierarchie, (benannt nach dem Linguisten Noam Chomsky und dem Mathematiker Marcel Schützenberger) ist ein Begriff aus der Theoretischen Informatik und bezeichnet eine Hierarchie von Klassen… …   Deutsch Wikipedia

  • Konkatenation (Formale Sprache) — Die Artikel Formale Sprache, Formales System, Formales System (Logik) und Kalkül überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese… …   Deutsch Wikipedia

  • Leere Sprache — Die Artikel Formale Sprache, Formales System, Formales System (Logik) und Kalkül überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese… …   Deutsch Wikipedia

  • Potenz (Formale Sprache) — Die Artikel Formale Sprache, Formales System, Formales System (Logik) und Kalkül überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”