„Kontextfreie Sprache“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K complexity zoo
Zeile 62: Zeile 62:
== Siehe auch ==
== Siehe auch ==
* [[Backus-Naur-Form]], eine kompakte formale Metasprache zur Darstellung kontextfreier Grammatiken.
* [[Backus-Naur-Form]], eine kompakte formale Metasprache zur Darstellung kontextfreier Grammatiken.

== Weblinks ==
* {{Complexity Zoo|CFL|C#cfl}}


[[Kategorie:Sprachtyp]]
[[Kategorie:Sprachtyp]]

Version vom 13. Oktober 2010, 21:05 Uhr

Als Kontextfreie Sprache (engl. context-free languages, CFL) werden formale Sprachen bezeichnet, die über eine kontextfreie Grammatik verfügen, die diese Sprache erzeugt. Eine kontextfreie Grammatik erlaubt einen definierten Leseprozess (Interpretation) einer Sprache. Insbesondere bei Programmiersprachen kann dazu ein Parser verwendet werden. Kontextfreie Sprachen werden auch als Typ-2-Sprachen der Chomsky-Hierarchie bezeichnet.

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

Einfache Beispiele für kontextfreie Sprachen sind die Sprachen und (Palindrome).

Beispielsweise enthält die Sprache die Wörter: ab, aabb, aaabbb usw. Die Sprache enthält die Wörter aa, abba, abaaba, abbbba, anna, otto usw.

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.

Eigenschaften

Die Klasse der kontextfreien Sprachen ist abgeschlossen unter der

  • Vereinigung
    • Konstruktion: Seien und kontextfrei. Neues Startsymbol S und neue Produktion . mit
  • Spiegelung
  • Konkatenation (Verkettung)
    • Konstruktion: Seien und kontextfrei. Neues Startsymbol S und neue Produktion . mit
  • Kleene-Stern
    • Konstruktion: Sei kontextfrei. Neues Startsymbol und neue Produktion . mit
  • Anwendung von Homomorphismen
  • Inverser Anwendung von inversen Homomorphismen
  • Durchschnittbildung mit regulären Sprachen

Sie ist nicht abgeschlossen unter

  • Durchschnitt
    • Seien und kontextfrei. Dann ist , jedoch nicht kontextfrei.
  • Komplement
    • Seien kontextfrei und kontextfreie Sprachen unter Komplementbildung abgeschlossen. Dann sind auch kontextfrei. Wegen der Abgeschlossenheit unter Vereinigung und De Morgan folgt, dass und damit kontextfrei ist.
  • Anwendung von logarithmisch platzbeschränkter Reduktion
  • Symmetrischer Differenz

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. Durch das sogenannte Pumping-Lemma kann für eine Sprache gezeigt werden, dass sie nicht regulär bzw. kontextfrei ist.

Typische Entscheidungsprobleme

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

  • Wortproblem: Gehört ein Wort zu ?
  • Leerheitsproblem: Ist die leere Menge?
  • Endlichkeitsproblem: Besteht aus einer endlichen Menge von Wörtern ()?

Die oben aufgezählten Probleme sind bei kontextfreien Sprachen entscheidbar. Das Äquivalenzproblem () ist ab einschließlich dieser Stufe der Chomsky-Hierarchie nicht mehr entscheidbar.

Weitergehende Eigenschaften

  • DLIN DCFL CFL GCSL CSL
  • REG DLIN LIN CFL
  • Für jedes gibt es Sprachen, die sich als Schnitt von kontextfreien Sprachen darstellen lassen, aber nicht als Schnitt von kontextfreien Sprachen.

Natürliche Sprache

In der Linguistik werden kontextfreie Grammatiken auch zur Beschreibung der Grammatik 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]

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)