Kontextfreie Grammatik

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 17. Juli 2021 um 13:04 Uhr durch imported>Alfrejg(2613170) (BKL Wortproblem ersetzt).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

In der Theorie der formalen Sprachen ist eine kontextfreie Grammatik (englisch context-free grammar, CFG) eine formale Grammatik, die nur solche Ersetzungsregeln enthält, bei denen immer genau ein Nichtterminalsymbol auf eine beliebig lange Folge von Nichtterminal- und Terminalsymbolen abgeleitet wird. Die Ersetzungsregeln haben also die Form (mit Nichtterminalsymbol und Zeichenkette bestehend aus Nichtterminal- und/oder Terminalsymbolen).

Weil die linke Seite einer Regel nur aus einem einzigen Nichtterminalsymbol besteht, hängt ihre Anwendbarkeit auf eine Zeichenkette nur davon ab, ob das Nichtterminalsymbol in der Zeichenkette vorkommt, nicht aber davon, in welchem Kontext es sich befindet, d. h. welche Zeichen links und/oder rechts davon stehen. Die Regeln sind also kontextfrei.

Die kontextfreien Grammatiken sind identisch mit den Typ-2-Grammatiken der Chomsky-Hierarchie.

Definition

Eine kontextfreie Grammatik ist ein 4-Tupel mit folgenden Eigenschaften:

  • ist eine endliche Menge, genannt Vokabular,
  • einer Teilmenge , von Terminalsymbolen (auch kurz Terminale genannt),
Dazu gehört die Differenzmenge von Nichtterminalsymbolen (auch kurz Nichtterminale oder Variablen genannt).
und sind disjunkte Alphabete
  • eine endliche Menge an Produktionsregeln (kurz Produktionen) ,
  • ein Startsymbol .

Hierbei bezeichnet die Kleenesche Hülle.

Erläuterung

Manche Autoren bezeichnen alternativ das Quadrupel als Grammatik , mit der Forderung, dass und zwei endliche, disjunkte Mengen sind, und .

Gelegentlich werden die Nichtterminale (Variablen) abweichend mit und die Terminale oder das Gesamtvokabular mit bezeichnet.

Eine Regel wird meist in der Form notiert.

Gemäß der Definition gilt für eine Regel , dass ist, also dass auf der linken Seite der Ersetzungsregel genau ein Nichtterminal steht. Es ist in einer Regel auf der linken Seite nicht von anderen Zeichen umgeben, und es stehen daher für jede Zeichenkette, die dieses Nichtterminal enthält, immer die gleichen Regeln zur Auswahl, egal welche Zeichen das Nichtterminal in einer Zeichenkette umgeben. Kurz gesagt ist die Auswahl der Regeln unabhängig vom Kontext von .

Von G erzeugte Sprache

Die kontextfreien Grammatiken erzeugen genau die kontextfreien Sprachen, d. h., jede Typ-2-Grammatik erzeugt eine kontextfreie Sprache und zu jeder kontextfreien Sprache existiert eine Typ-2-Grammatik, die diese erzeugt.

Dabei werden die Produktionsregeln so angewendet, dass in einem Wort mit R als Infix (Teilwort, englisch substring), dieses durch Q ersetzt werden kann, so dass ein neues Wort mit als Infix entsteht. Die Menge (als Teilmenge eines kartesischen Produktes eine Relation) wird dadurch erweitert zu

.

Diese Ersetzungen können mehrfach vorgenommen werden: Wenn ein Wort aus einem Wort durch n-fache Anwendung von hervorgeht, schreibt man , ist dies bei beliebiger endlicher Anwendung der Fall, dann . Die Relation (Ableitung) steht für eine beliebige endliche Folge von Regelanwendungen bezüglich der Grammatik . Siehe dazu auch: Homogene Relationen.

Die kontextfreie Sprache Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G)} , die durch die kontextfreie Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G} generiert wird, ist dann definiert als die Menge aller Wörter, die auf diese Weise aus dem Startsymbol abgeleitet werden können und die nur aus Terminalen bestehen:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G) = \{ w \mid w\in T^* \land S {\rightsquigarrow_G}^* w \}} .

Es müssen vom Startsymbol Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S} aus solange Nichtterminale mit Hilfe der Regeln ersetzt werden, bis nur noch Terminale übrig sind. Offenbar gilt Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G)\subseteq T^*} .

Die kontextfreien Sprachen sind genau die Sprachen, die von einem nichtdeterministischen Kellerautomaten akzeptiert werden. Existiert auch ein deterministischer Kellerautomat, nennt man die Sprache auch deterministisch kontextfrei. Diese echte Teilmenge der kontextfreien Sprachen bildet die theoretische Basis für die Syntax der meisten Programmiersprachen.

Kontextfreie Sprachen können das leere Wort enthalten, z. B. durch eine Produktionsregel Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (S \rightarrow \varepsilon)} . Einige Sätze über kontextfreie Grammatiken fordern allerdings zusätzlich, dass das leere Wort von ihr nicht erzeugt werden darf. So gibt es z. B. nur zu den kontextfreien Grammatiken eine äquivalente Grammatik in Greibach-Normalform, wenn das leere Wort durch sie nicht erzeugt werden kann, da in jedem Ableitungsschritt genau ein Terminal erzeugt wird.

Normalformen

Für kontextfreie Grammatiken sind verschiedene Normalformen definiert. Unter der Chomsky-Normalform (CNF) sind die rechten Seiten der Nichtterminal-Produktionen eingeschränkt, d. h. auf der rechten Seite darf entweder ein einziges Terminal-Symbol oder genau zwei Nichtterminal-Symbole stehen. Wenn das Startsymbol auf der linken Seite steht, darf die rechte Seite der Produktion allerdings auch das leere Wort sein. Durch einen Algorithmus kann jede kontextfreie Grammatik in die CNF überführt werden.

Eine kontextfreie Grammatik ist in der Greibach-Normalform (GNF), wenn sie nicht das leere Wort erzeugt und die rechten Seiten der Produktionen mit maximal einem Terminal-Symbol beginnen und sonst nur Nichtterminal-Symbole enthalten. Jede kontextfreie Grammatik, die nicht das leere Wort erzeugt, kann mit einem Algorithmus in die GNF überführt werden.

Eigenschaften

Wortproblem

Das Wortproblem für kontextfreie Sprachen, also das Problem, ob ein Wort Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w} von einer kontextfreien Grammatik erzeugt werden kann, ist entscheidbar.[1] Auf dem Weg der Lösung des Wortproblems kann zusätzlich ein Ableitungsbaum erzeugt werden. Dieser Ableitungsbaum wird auch Parse-Tree genannt, und ein Programm, welches einen Parse-Tree erzeugt, ist ein Parser. Für jede kontextfreie Grammatik kann automatisch ein Parser generiert werden (siehe auch CYK-Algorithmus). Die Worst-Case-Laufzeitkomplexität eines Parsers für eine beliebige kontextfreie Grammatik liegt in Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \mathcal O\left(n^3\right)} (s. Landau-Symbole). Für Teilklassen von kontextfreien Grammatiken können Parser erzeugt werden, deren Laufzeit in Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \mathcal O(n)} liegt. Ein typischer Anwendungsfall eines effizienten kontextfreien Parsers mit linearer Laufzeit ist das Parsen eines Programmiersprachen-Quelltexts durch einen Compiler.

Wenn ein Wort Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w} der Sprache L (Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w\in L(G)} ) durch die Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G} auf mehrere verschiedene Arten erzeugt werden kann, dann ist diese Grammatik mehrdeutig. Ein Parser kann bei einer mehrdeutigen Grammatik für ein gegebenes Wort nicht nur einen, sondern mehrere Ableitungsbäume erzeugen. Mehrdeutigkeit ist nicht problematisch, wenn nur das Wortproblem gelöst werden soll. Wird aber den unterschiedlichen Ableitungsbäumen eine unterschiedliche Bedeutung zugeordnet, dann kann ein Wort bei einer mehrdeutigen Grammatik mehrere unterschiedliche Bedeutungen haben. Ein Beispiel für die Notwendigkeit einer eindeutigen kontextfreien Grammatik ist ein Compiler, der für jede gültige Eingabe deterministisch und eindeutig ausführbaren Zielcode erzeugen muss.

Mehrdeutigkeit

Das Problem, ob eine (beliebige) kontextfreie Grammatik mehrdeutig oder nicht-mehrdeutig ist, ist nicht entscheidbar.[2] Es existieren aber Testverfahren, die für bestimmte Teilklassen der kontextfreien Grammatiken Mehrdeutigkeit bzw. Nicht-Mehrdeutigkeit feststellen können.[3] Je nach Testverfahren terminiert der Mehrdeutigkeits-Test nicht oder der Test liefert zurück, dass die Mehrdeutigkeit nicht festgestellt werden kann, falls die kontextfreie Eingabe-Grammatik nicht Element einer bestimmten Teilklasse von kontextfreien Grammatiken ist.

Äquivalenz

Das Problem, ob zwei kontextfreie Grammatiken Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_1} und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_2} die gleiche Sprache generieren (also ob Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G_1) = L(G_2)} ), ist nicht entscheidbar.[4]

Teilmenge

Das Problem, ob die durch eine kontextfreie Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_1} erzeugte Sprache auch von einer kontextfreien Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_2} erzeugt wird (also ob Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G_1)\subseteq L(G_2)} ), ist nicht entscheidbar.[4]

Vereinigung

Die Vereinigung Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G_1) \cup L(G_2)} der Sprachen zweier kontextfreier Grammatiken Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_1=(V_1,T_1,P_1,S_1)} und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_2=(V_2,T_2,P_2,S_2)} kann ebenfalls von einer kontextfreien Grammatik erzeugt werden, nämlich

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_1\cup G_2 := (\{S\}\cup V_1\cup V_2, T_1\cup T_2, P_1\cup P_2\cup\{S\rightarrow S_1, S\rightarrow S_2\}, S)} .

Dabei wird vorausgesetzt, dass die beiden Nichtterminalmengen Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N_1 = V_1 \setminus T_1} und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N_2 = V_2 \setminus T_2} disjunkt sind (Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N_1\cap N_2=\emptyset} ), und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S} ein beliebiges zusätzliches Zeichen ist (Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S\notin N_1\cup N_2\cup T_1\cup T_2} ), was aber für alle Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_1, G_2} erreicht werden kann.

Schnitt

Das Problem, ob der Schnitt der Sprachen zweier kontextfreier Grammatiken Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_1, G_2} ebenfalls von einer kontextfreien Grammatik erzeugt wird, ist nicht entscheidbar.[4]

Komplement

Das Komplement einer kontextfreien Grammatik ist im Allgemeinen nicht kontextfrei.

Beispiele

Sei Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G=(V,T,P,S)} eine kontextfreie Grammatik mit Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N = V \setminus T} und

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle T = \{ x, y, z \}}

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N = \{ S, A, B\}}

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P} enthält 4 Produktionen bzw. Produktionsregeln:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \begin{align} S & \rightarrow & A \\ A & \rightarrow & x A y \\ A & \rightarrow & x B y \\ B & \rightarrow & z \end{align} }

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_1 = xxzyy} kann durch die Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G} mit folgender Ableitung erzeugt werden:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle t(w_1) = S(A(x,A(x,B(z),y),y))}

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle t(w_1)} ist der Ableitungsbaum in Term-Schreibweise. Die Wurzel und die inneren Knoten sind mit Nichtterminal-Symbolen und die Blätter mit Terminal-Symbolen beschriftet.

Also ist Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_1\in L(G)} .

Das Beispiel Wort Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_2} mit Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_2 = z} ist nicht Teil der Sprache Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L(G)} , da das Nichtterminal Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle B} nicht das Startsymbol ist und über das Startsymbol jedes Wort der Sprache von den Terminal-Symbolen Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle x} und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle y} eingeschlossen sein muss. In Formelschreibweise:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_2\notin L(G)}

Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G} ist nicht mehrdeutig.

Sprache der Palindrome

Die Grammatik Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G(\{S, a, b\}, \{a, b\}, P, S)} mit Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P} gegeben als Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S \rightarrow \varepsilon | a | b | aSa | bSb} erzeugt die Sprache aller Palindrome über dem Alphabet Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \{a,b\}} .

Mehrdeutiges Beispiel

Ein Beispiel für eine mehrdeutige Grammatik ist Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_2=(V_2,T_2,P_2,S_2)} mit Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N_2 = V_2 \setminus T_2} und

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle T_2 = \{ x, y \}}

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle N_2 = \{ S_2, A\}}

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P_2} enthält folgende Produktionen:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \begin{align} S_2 & \rightarrow & A \\ A & \rightarrow & AA \\ A & \rightarrow & x A y \\ A & \rightarrow & \varepsilon \end{align} }

Für Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_3=xy} existieren unter anderem die Ableitungen Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S_2(A(x,A(\varepsilon),y))} , Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S_2(A(A(\varepsilon),A(x,A(\varepsilon),y)))} und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle S_2(A(A(x,A(\varepsilon),y),A(\varepsilon)))} . Also ist Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle G_2} mehrdeutig.

Erweiterung

Eine Erweiterung der kontextfreien Grammatiken bilden stochastische kontextfreie Grammatiken (SCFG), auch bekannt als probabilistische kontextfreie Grammatiken (PCFG). Hier wird jeder Produktionsregel eine Auftrittswahrscheinlichkeit zugeordnet: Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \rho\colon P\rightarrow\mathbb{R}^{\geq 0}} , so dass für jedes Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \alpha'\in N} gerade Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \sum_{\begin{smallmatrix}{\beta}\\(\alpha', \beta)\in P\end{smallmatrix}} \rho(\alpha', \beta) = 1} ist.

Diese Auftrittswahrscheinlichkeiten der einzelnen Regeln induzieren eine Wahrscheinlichkeitsverteilung auf der Menge der von der Grammatik erzeugten Wörter.

Eine stochastisch kontextfreie Grammatik kann beispielsweise dazu verwendet werden, für ein Eingabewort den wahrscheinlichsten Parse in einer syntaktisch mehrdeutigen Grammatik zu berechnen. Ein anderer Anwendungsfall ist das stochastische Samplen von Ableitungsbäumen unter den gegebenen Regelwahrscheinlichkeiten einer mehrdeutigen Grammatik. Die von einer SCFG erzeugte Sprache ist genau so definiert wie die Sprache einer CFG. SCFGs werden z. B. in der Bioinformatik und der Computerlinguistik eingesetzt.

Siehe auch

Literatur

  • John E. Hopcroft, Jeffrey D. Ullman: Introduction to automata theory, languages, and computation. Addison-Wesley, 1979, ISBN 0-201-02988-X, S. 77 ff.
  • Taylor L. Booth und Richard A. Thomson: Applying probability measures to abstract languages. In: IEEE Transactions on Computers. C-22, Nr. 5, 1973, S. 442–450, doi:10.1109/T-C.1973.223746.
  • J. Baker: Trainable grammars for speech recognition. In: J. J. Wolf and D. H. Klatt (Hrsg.): Speech communication papers presented at the 97th meeting of the Acoustical Society of America. MIT, Cambridge, MA Juni 1979, S. 547–550 (JASA Vol. 65, issue S1, p. S132 ist nur der Abstract in einem Abstract-Band).
  • Uwe Schöning: Theoretische Informatik - kurzgefasst. 4. Auflage. Spektrum Akademischer Verlag, Berlin 2001, ISBN 3-8274-1099-1, S. 13, 51.

Einzelnachweise

  1. Uwe Schöning: Theoretische Informatik- kurz gefasst. 5. Auflage. Spektrum Akademischer Verlag, Heidelberg 2008, ISBN 978-3-8274-1824-1, S. 13.
  2. Alfred V. Aho and Jeffrey D. Ullman: The Theory of Parsing, Translation, and Compiling. Volume 1: Parsing. Prentice-Hall, 1972, ISBN 0-13-914556-7, S. 202.
  3. H. J. S. Basten: Ambiguity Detection Methods for Context-Free Grammars. 17. August 2007 (cwi.nl [PDF] Master Thesis).
  4. a b c Schöning, 2001, S. 137.