Deterministisch kontextfreie Sprache

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 Sheila Greibach zurück.

In Bezug auf Grammatiken findet sich auch die Bezeichnung LR(k)-Sprache: Jede LR(k)-Grammatik beschreibt eine deterministisch-kontextfreie Sprache. Umgekehrt gibt es für jede deterministisch-kontextfreie Sprache L ein k, so dass L eine LR(k)-Sprache ist (d.h. eine LR(k)-Grammatik hat). Tatsächlich reicht dafür in jedem Fall k = 1, aber nicht k = 0. Jedoch lässt sich auch jede deterministisch-kontextfreie Sprache, die nicht LR(0) ist, durch Einführung einer eindeutigen Markierung für das Wortende in eine LR(0)-Sprache überführen.

Inhaltsverzeichnis

Eigenschaften

Deterministisch kontextfreie Sprachen haben die für die Praxis sehr nützliche Eigenschaft, dass für sie LR-Parser existieren, mit welchen in linearer Zeit beim Lesen von Links nach Rechts entschieden werden kann, ob die Eingabe ein Wort der Sprache ist. Viele in der Praxis verwendete formale Sprachen, insbesondere Programmiersprachen, gehören zu dieser Sprachklasse.

Weiterhin sind die deterministisch kontextfreien Sprachen abgeschlossen unter:

Sie sind nicht abgeschlossen unter:

Verhältnis zu anderen Sprachklassen

Da die Konstruktion eines LR-Parsers aus einer LR(1)-Grammatik für eine deterministisch kontextfreie Sprache häufig zu sehr großen Parse-Tabellen führt, werden in der Praxis leichte Einschränkungen vorgenommen, die zu geringerer Mächtigkeit führen. Die beiden Einschränkungen dieser Art sind LALR- und SLR-Parser

Eine weitere Unterklasse der LR(k)-Sprachen bilden die LL(k)-Sprachen. Diese werden manchmal für bestimmte Anwendungsfälle bevorzugt, da Parser direkt aus einer Grammatik dafür leicht ohne Parsergenerator programmiert werden können (s. Rekursiver Abstieg). Weiterhin sind während des Parsens Informationen über die genaue Position im Parsebaum verfügbar. Dies ist vor allem deshalb nützlich, weil es auf einfache Weise vererbte Attribute bei der Definition der Semantik zulässt.

Bei LR-Parsern ist die mögliche Baumkonstellation oberhalb des abgearbeiteten Handle hingegen eine reguläre Sprache. Gängige Parsergeneratoren wie yacc beschränken sich deshalb auf die Möglichkeit der S-Attribution, die ausschließlich synthetisierte Attribute zulässt. Inzwischen existiert jedoch mit zyacc auch ein Parsergenerator, der LR-Attribution erlaubt, d.h. vererbte Attribute in den Fällen, wo sie beim Parsen von Links nach Rechts eindeutig ausgewertet werden können.

Die deterministisch kontextfreien Sprachen sind eine echte Teilklasse der kontextfreien Sprachen. Sie sind unvergleichbar mit den linearen Sprachen, aber eine echte Oberklasse der deterministischen linearen Sprachen. Weiterhin sind sie eine echte Teilklasse der deterministischen wachsend kontextsensitiven Sprachen, die mit den Church-Rosser-Sprachen übereinstimmen.

Literatur

  • Seymour Ginsburg, Sheila A. Greibach: Deterministic context-free languages. In: Information and Control 9, 1966, ISSN 0019-9958, S. 620–648.
  • Donald E. Knuth: On the Translation of Languages from Left to Right. In: Information and Control 8, 1965, ISSN 0019-9958, S. 607–639, (Neuabdruck einer erweiterten Fassung in: Donald E. Knuth: Selected Papers on Computer Languages. Center for the Study of Language and Information, Stanford CA 2003, ISBN 1-575-86381-2, (CSLI lecture notes 139), Kapitel 15).

Weblinks

  • DCFL. In: Complexity Zoo. (englisch)

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

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

  • 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… …   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

  • 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

  • Lineare Sprache — Die Linearen Sprachen (engl. linear languages, LIN) sind ein Fachbegriff aus der Theoretischen Informatik. So sind sie hier speziell eine Klasse formaler Sprachen und stellen dabei eine echte Teilmenge der Typ 2 Sprachen der Chomsky Hierarchie… …   Deutsch Wikipedia

  • Typ2-Grammatik — 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

  • DCFL — 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

  • Kontextfrei — In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: OMA Verständlichkeit bei den Beispielen ausbauen Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst. Als Kontextfreie Sprache ( …   Deutsch Wikipedia

  • GCSL — Wachsend kontextsensitive Sprachen (engl.: Growing Context Sensitive Languages, abgekürzt: GCSL) sind ein Begriff aus der Theorie der Formalen Sprachen, einem Teilgebiet der Theoretischen Informatik. Eine wachsend kontextsensitive Sprache wird… …   Deutsch Wikipedia

  • Keller Automat — Ein Kellerautomat (KA, auch PDA für englisch pushdown automaton; auch Stackmaschine) ist ein Automat im Sinne der Theoretischen Informatik. Es handelt sich also um ein rein theoretisches Konstrukt, das verwendet wird, um gewisse Eigenschaften von …   Deutsch Wikipedia

  • Kellermaschine — Ein Kellerautomat (KA, auch PDA für englisch pushdown automaton; auch Stackmaschine) ist ein Automat im Sinne der Theoretischen Informatik. Es handelt sich also um ein rein theoretisches Konstrukt, das verwendet wird, um gewisse Eigenschaften von …   Deutsch Wikipedia

Share the article and excerpts

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