Der Earley-Algorithmus.
|
|
|
- Klara Abel
- vor 9 Jahren
- Abrufe
Transkript
1 1 Der Earley-Algorithmus. Eine Erläuterung der formalen Spezifikation mit linguistischen Beispielen Kursskript Karin Haenelt, Einleitung In diesem Skript wird die formale Spezifikation des Earley-Algorithmus erläutert. Basis ist die Spezifikation, die Jay Earley in seinem Aufsatz von 1970 (Earley, 1970) gegeben hat. Zur Erläuterung werden linguistische Beispiele gegeben. Dieses Skript soll zugleich eine Hilfe zum Verständnis formaler Spezifikationen bieten. Abschnitt 2 gibt eine allgemeine Übersicht über die Funktionsweise des Earley-Algorithmus. Abschnitt 3 stellt die Notationskonventionen und Definitionen zusammen, die Jay Earley in seinem Aufsatz verwendet In Abschnitt 4 wird die Spezifikation des Aufsatzes von Jay Earley (1970) zitiert. In Abschnitt 5 folgt dann die schrittweise detaillierte Erläuterung dieser Spezifikation. 2 Funktion des Earley-Algorithmus Der Earley-Algorithmus ist ein Erkennungs-Algorithmus für Sprachen, die mit kontextfreien Grammatiken beschrieben werden. Er ist für formale Sprachen entwickelt worden, bildet aber auch die Basis für viele Implementierungen zur syntaktischen Analyse natürlichsprachiger Sätze. Eine kontextfreie Grammatik ist wie folgt definiert: Eine kontextfreie Grammatik ist eine endliche Menge von Variablen (auch Nichtterminale oder syntaktische Kategorien genannt), von denen jede eine Sprache repräsentiert. Die Sprachen, die durch die Variablen dargestellt werden, werden rekursiv durch die anderen Variablen und primitiven Symbole die sogenannten Terminale beschrieben. Die Regeln, die die Variablen untereinander verknüpfen, werden Produktionen genannt. (Hopcroft/Ullman, 1988, S. 81). Erkenner (Recognizer): ein Algorithmus, der eine Zeichenkette als Eingabe nimmt und diese Zeichenkette akzeptiert oder verwirft, je nachdem, ob sie den Grammatikregeln entspricht oder nicht.
2 2 Parser: ein Erkenner, der zusätzlich die Ableitungsbäume der Zeichenkette ausgibt. Der Earley-Algorithmus arbeitet eine Grammatik zum Vergleich mit einer Eingabekette topdown mit drei Funktionen ab: Der Predictor expandiert alle nicht-terminalen Kategorien soweit bis die terminalen Kategorien erreicht werden. Der Scanner stellt fest, ob die Eingabe den erwarteten terminalen Kategorien entspricht. Der Completer sorgt dafür, dass nach der vollständigen Erkennung von Teilkonstituenten zur übergeordneten Konstituente zurückgekehrt wird. Der Algorithmus verfolgt Schritt für Schritt die möglichen Ableitungsbäume von Sätzen. Dies sei an dem folgendem Beispiel illustriert. 0 Beispielgrammatik: Φ Φ S S NP VP NP dete nomn VP verb 1 S 10 2 NP 6 VP Predictor Scanner Completer dete nomn verb 4 5 der Mensch denkt Abbildung 1: Syntaxbaum mit Ableitungsschritten
3 3 S NP VP dete nomn verb der Mensch denkt Abbildung 2: Kanten des Syntaxbaumes und ihre Abdeckung bezogen auf die Eingabe von der linken Grenze 0 (vor Wort 1) bis zur rechten Grenze 3 (hinter Wort 3) 3 Notationskonventionen und Definitionen In dem genannten Artikel werden die folgenden Notationskonventionen und Definitionen verwendet: 3.1 Produktionsregeln Zur Darstellung der Produktionsregeln, der Ableitungen, der Eingabekette und der Grammatik werden die folgenden Symbole verwendet: a, b, c Terminal-Symbole, also primitive Symbole, die für die Blätter des Satzstruktur-Baumes verwendet werden. Gewöhnlich werden hierfür die morpho-syntaktischen Kategorien wie z.b. nomn, verb, adje verwendet. Man findet aber auch Anwendungen, in denen lexikalische Zeichen direkt als Terminalsymbole verwendet werden. A, B, C Non-Terminal-Symbole, also syntaktische Kategorien wie z.b. S, NP, VP α, β, γ Ketten von Terminal- oder Non-Terminal-Symbolen λ leere Kette α n α...α (Kette mit n mal vorkommendem α ) α A α R Anzahl der Symbole in α Produktionsregel Wurzel, Non-Terminal-Symbol, das für Satz steht
4 4 α β β ist von α direkt abgeleitet, wenn γ, δ, η, A, wobei α = γ A δ und β = γ η δ und A η eine Produktion ist α β β ist von α (ggf. über mehrere Produktionen) abgeleitet, wenn Ketten α 0, α 1,..., α m (m 0) wobei α = α 0 α 1... α µ = β. Die Folge α 0,..., α m wird Ableitung (von β aus α) genannt X 1... X n k G Eingabe-Kette Anzahl der Look-Ahead-Symbole Grammatik 3.2 Instanzen der Produktionsregeln Für jedes Vorkommen, d.h. jede Instanz einer Regel wird zur eindeutigen Kennzeichnung eine Produktionsnummer vergeben (z.b. S 1 (NP 2 (der Architekt) VP 3 (v entwirft (NP 4 ein Haus))). p Nummer einer Produktion 1,..., d - 1 Anzahl der Produktionen Ferner werden die Konstituenten auf der rechten Seite der Regel durchnummeriert. Dabei werden die folgenden Symbole verwendet: p Anzahl der Symbole auf der rechten Seite einer Produktion D p C p1... C p p Produktion (1 p d - 1) So ergibt sich folgende Darstellung der einzelnen Produktionen: D 0 R # Produktion Nr. 0, R ist die Wurzel von G, # ist ein neues Terminal-Symbol # Terminal-Symbol, das in der Eingabekette nicht vorkommt; als Ketten- Ende-Markierung verwendet (im Originalartikel ist das Zeichen - verwendet, das in Word nicht zur Verfügung steht)
5 5 3.3 Produktionsregeln und Punktschreibweise (dotted rules) Punkte in einer Produktionsregel markieren den aktuellen Bearbeitungszustand. Sie zeigen an, bis zu welcher Konstituente die Erkennung fortgeschritten ist, d.h. bis zu welcher Stelle in der Regel die Verarbeitung gediehen ist. Der Punkt steht jeweils vor der nächsten zu erkennenden Konstituente. Die Regel S NP VP kann drei Zustände haben: S NP VP noch gar keine Konstituente erkannt S NP VP eine Konstituente (NP) erkannt S NP VP zwei Konstituenten (NP und VP) erkannt 3.4 Zustand, Zustandsmenge, Endzustand Zustand def: ein Zustand ist ein Quadrupel <p,j, f,α> Dieses Quadrupel kann auch als Produktion mit einem Punkt repräsentiert werden. s=< p, j, f, α> p Zustand def Integer, (0 p d 1) (Nummer der Produktion) j f α Zustandsmenge Endzustand Integer, (0 j p) (Anzahl der erkannten Symbole auf der rechten Seite der Produktion) (entspricht Position des in der Punktnotation für geteilte Produktionen, z.b. S NP VP) Integer, (0 f n+1), Anfang der Produktion (entspricht der linken Grenze des durch die Produktion überspannten Teils der Eingabekette, vom Completer verwendet als Rückwärtszeiger auf die Zustandsmenge, in der die Produktion erzeugt wurde) Zeichenkette bestehend aus k Symbolen (Look-ahead-String), syntaktisch zulässiger Nachfolger einer Instanz einer Produktion. Die Berücksichtigung dieser Zeichenkette soll den Zeitpunkt des Abbruchs der Weiterverfolgung von Regeln, die nicht zu einer erfolgreichen Analyse beitragen, optimieren. geordnete Menge der Zustände zu einer Zustandsmenge S i gehören jeweils die Zustände, in denen dieselbe rechte Grenze i in der Eingabekette erreicht ist. Es gibt also eine initiale Zustandsmenge S 0 und weitere Zustandsmengen S i für jedes Eingabesymbol x i. Zustand mit j = p
6 6 hinzufügen eines Zustandes zu einem Zustand durch Anfügen als letztem in der geordneten Menge, sofern er noch kein Element ist 3.5 Bestimmung des Look-Ahead-Symbols H k (γ) = {α α terminal ist, α = k, und β, so dass γ αβ} Menge aller k-symbole langen terminalen Ketten die eine von γ abgeleitete Kette beginnen (verwendet zur Bildung von Look-ahead- Strings für Zustände) Beispiele: H 1 (dete adje nomn) = dete H 1 (NP) = dete 4 Formale Spezifikation Der Aufsatz gibt folgende formale Spezifikation des Algorithmus: THE RECOGNIZER. This is a function of three arguments REC(G, X 1... X n, k) computed as follows: Let X n+i = # ( 1 i k+1). Let S i be empty ( 0 i n+1). Add <0,0,0, # k > to S 0. For i < 0 step 1 until n do Begin Process the states of S i in order, performing one of the following three operations on each state s = <p,j,f,α>: (1) Predictor: If s is nonfinal and C p(j+1) is a nonterminal, then for each q such that C p(j+1) = D q, and for each β H k (C p(j+2) C p p α) add <q,0,i,β> to S i. (2) Completer: If s is final and α = X i+1 X i+k,
7 7 then for each <q,l,g,β> S f (after all states have been added to S f ) such that C q(l+1) = D p, add <q,l+1,g,β> to S i. (3) Scanner: If s is nonfinal and C p(j+1) is terminal, then if C p(j+1) = X i+1, add <p,j+1,f,α> to S i+1. If S i+1 is empty, return rejection. If i=n and S i+1 = {<0,2,0, #>}, return acceptance. End s 5 Erläuterung der formalen Spezifikation Zur Erläuterung wird das in Abschnitt 2 eingeführte Beispiel verwendet. Die Sequenz der Zustände wird in einer Tabelle, der sogenannten Agenda (oder auch Chart bzw. Parsing- Chart) notiert. Die dem Beispiel zugehörige Agenda enthält folgende Zustände: (eingelesen) S i X i+1 s = < p, j, f, α > p D p C p1... C p p 0 0 dete # 2 Φ S ## S 1 0 dete # 2 S NP VP NP C p(j+1) 2 0 dete verb 2 NP dete nomn dete 3 1 nomn verb 2 NP dete nomn nomn der 4 2 verb verb 2 NP dete nomn - Mensch 5 2 verb # 2 S NP VP VP 6 2 verb # 1 VP verb verb 7 3 # # 1 VP verb - denkt 8 3 # # 2 S NP VP # # 2 Φ S ## # 10 4 # # 2 Φ S# # # Der Algorithmus durchläuft die Agenda, indem - sequentiell jeweils ein Zustand eingelesen wird, - festgestellt wird, welche Funktion (Predictor, Scanner, Completer) für die Verarbeitung des Zustandes zuständig ist,
8 8 - ein oder mehrere Zustände an das Ende der jeweiligen Zustandsmenge hinzugefügt werden bis das Ende der Agenda bzw. ein gültiger Endzustand erreicht ist. In der Spezifikation wird der jeweils eingelesene Zustand mit bezeichnet. <p,j,f,a> Die durch die drei Funktionen zu erzeugenden Zustände werden wie folgt bezeichnet : - Predictor: <q,0,i,β> - Scanner: <p,j+1,f,α> - Completer: <q,l+1,g,β> Der Completer muss außerdem noch den Zustand aufsuchen, der den jeweiligen Mutterknoten bezeichnet: <q,l,g,β> Es werden folgende Zusammenhänge zwischen den eingelesenen und den erzeugten Zuständen spezifiziert: 5.1 Predictor Der Predictor ist für die Expansion von Non-Terminal-Symbolen zuständig. Immer wenn die Verarbeitung an einen Zustand gelangt, der die Erkennung eines nicht-terminalen Symbols (also einer syntaktischen Kategorie wie z.b. S, NP, VP) verlangt, muss der Predictor alle Regeln auf die Agenda schreiben, die für dieses nicht-terminale Symbol in der Grammatik bereitgestellt werden. Er stellt also zu einem Mutterknoten die möglichen Tochterknoten bereit. Im Beispiel werden die folgenden Regeln durch den Predictor auf die Agenda geschrieben: eingelesen - erzeugt: s = 1 (Initialzustand) Φ S eingelesen: s = 1 erzeugt: s = 2 S NP VP eingelesen: s = 2 erzeugt: s = 3 NP dete nomn eingelesen: s = 6 erzeugt: s = 7 VP verb
9 9 Der Predictor schreibt dabei alle möglichen Alternativen einer bestimmten Regel auf die Agenda, d.h. es können pro eingelesenem Zustand immer eine Menge neuer Zustände erzeugt werden. Alle Lösungshypothesen werden quasi parallel solange weiterverfolgt, bis Scanner oder Completer keine Übereinstimmung mit der Eingabekette mehr feststellen bzw. bis das Ende der Eingabekette erfolgreich erreicht wurde. Im Beispiel gibt es pro Konstituente nur eine Expansionsregel. In einer realistischen Grammatik für eine natürliche Sprache gibt es natürlich sehr viel mehr. Die Spezifikation für den Predictor lautet: Predictor: wenn s nicht final ist und C p(j+1) ein Non-Terminal-Symbol ist, dann soll für jedes q für das gilt C p(j+1) = D q, und für jedes β H k (C p(j+2) C p p α) ein Zustand <q,0,i,β> zur Zustandsmenge S i hinzugefügt werden. Diese Spezifikation sei am Beispiel der des eingelesenen Zustandes 1 und des erzeugten Zustandes 2 betrachtet: s (eingelesen) S i X i+1 s = < p, j, f, α > p D p C p1... C p p 0 0 dete # 2 Φ S ## S 1 0 dete # 2 S NP VP NP C p(j+1) Eingelesener Zustand: <p, j, f, α> (Zustand 1) Φ S Erzeugter Zustand: <q, 0, i, β> (Zustand 2) S NP VP Zustand 1 ist nicht final, da j p, d.h. es wurden noch nicht alle Symbole auf der rechten Seite der Regel erkannt. Außerdem soll C p(j+1) ein Non-Terminal sein. Der Index für die Elemente auf der rechten Seite der Regel läuft von 1 bis p, wobei p die Anzahl der Symbole auf der rechten Seite der Regel ist. Im aktuellen Fall ist j = 0, d.h. gesucht ist das Symbol C p1. So gilt C p(j+1) = S (also ein Non-Terminal). Damit ist der Predictor zuständig. Die Objekte der Quadrupel haben die folgende Bedeutung mit folgenden Zusammenhängen: 1. Objekt: (p bzw. q) Nummer der Produktion Die Spezifikation bezeichnet die eingelesene Produktion (Φ S ) mit der Produktionsnummer p und die zu erzeugende Produktion mit der Produktionsnummer q, d.h. für die zu erzeugende Produktion ist eine von p verschiedene Nummer zu erzeugen
10 10 und damit eine von p verschiedene Produktion, nämlich S NP VP. Der Zähler für die Produktionsnummern wird hochgezählt und die nächste freie Nummer wird an die neue Produktion vergeben. Der Zusammenhang zwischen der mit p und der mit q gekennzeichneten Produktion wird hergestellt durch die Bedingung C p(j+1) = D q : C p(j+1) gehört zur eingelesenen Produktion (Index p). Mit C werden gemäß der Notationskonvention für Produktionen die Konstituenten auf der rechten Seite der Regel bezeichnet. Dabei steht C p(j+1) für die Konstituente, die als nächste zur Verarbeitung ansteht: es sind bisher j Konstituenten erkannt, d.h. C p(j+1) ist die nächste Konstituente nach den erkannten Konstituenten. Im Beispiel ist j =0, da aus der Startregel Φ S noch gar nichts erkannt wurde (in der Punktschreibweise steht der Punkt vor dem S). Das zur Verarbeitung anstehende Symbol C p(j+1) ist also die erste Konstituente, nämlich das S. D q. gehört zur neu zu erzeugenden Produktion (Index q). Mit D werden die Köpfe der Regeln bezeichnet. Also besagt diese Forderung, dass der Kopf der neu zu erzeugenden Produktion identisch sein muss mit der zur Verarbeitung anstehenden Konstituente der Mutterproduktion. Im Beispiel ist C p(j+1) = S und D q = S 2. Objekt: (j bzw. 0) Anzahl der erkannten Symbole auf der rechten Seite In der zu erzeugenden Produktion ist die Anzahl der erkannten Symbole 0 (unabhängig vom Wert von j in der Mutterproduktion). Dies ist immer der Fall, wenn eine Produktion neu als Aufgabe auf die Agenda gesetzt wird, denn zu diesem Zeitpunkt ist natürlich noch keines ihrer Symbole auf der rechten Seite erkannt worden. 3. Objekt: (f bzw. i) Anfang der Produktion In der neuen Produktion p ist der Anfang der Produktion (d.h. ihre linke Grenze bezogen auf den Eingabestring) identisch mit der rechten Grenze der Mutterproduktion (bezeichnet durch die Zustandsmenge S i, zu der die Mutterproduktion gehört). 4. Objekt: (α bzw. β) Look-Ahead-Symbol Eingelesen wird ein Look-Ahead-Symbol α, geschrieben wird ein Look-Ahead-Symbol β, d.h. es ist ein neues Look-Ahead-Symbol zu bestimmen. Das Look-Ahead-Symbol gibt an, welches terminale Symbol als nächstes in der Eingabe stehen soll, wenn eine Produktion abgearbeitet ist. Dieses Symbol ist nach folgender Formel zu bestimmen: β H k (C p(j+2) C p p α), d.h. es ist die Zeichenkette der Mutterproduktion (Index p), beginnend ab der Konstituente C p(j+2) (d.h. ab der Konstituente hinter der gerade in Bearbeitung befindlichen Konstituente C p(j+1) ) bis einschließlich des Look-Ahead-Symbols
11 11 α der Mutterproduktion; und die Länge der hieraus als Look-Ahead-Symbole zu bestimmenden Teilkette ist k Symbole lang (meistens 1 Symbol). Für die Verarbeitung natürlicher Sprachen ist die Verwendung eines Look-Ahead- Symbols aus folgenden Gründen aufwändig: 1. Look-Ahead-Symbole sind terminale Symbole, da der Sinn gerade darin besteht, diese Symbole mit der aktuellen Eingabekette zu vergleichen. Zur Bestimmung des nächsten terminalen Symbols kann die Verfolgung einer Ableitungskette erforderlich werden. Bei Grammatiken für natürliche Sprachen kann diese Ableitungskette lang werden. Angenommen die Mutterproduktion lautet S NP VP, dann ist das Look-Ahead-Symbol der NP das erste terminale Symbol aus der VP. Um dieses zu bestimmen, muss VP bis zum linken terminalen Knoten abgeleitet werden. 2. Es kann mehrere Look-Ahead-Symbole geben. Angenommen, die Grammatik enthält mehrere Ableitungsregeln für die VP, z.b. VP v NP VP NP v und NP (dete) (adje) nomn. NP pron so gibt es insgesamt fünf Look-Ahead-Symbole für die in Frage stehende NP, nämlich v, dete, adje, nomn. Bei Anwendung des Originalalgorithmus würde das zu fünf Einträgen in die Agenda führen (und zwar jeweils für alle NP-Regeln, die gerade auf die Agenda einzutragen sind). Hier ist durch geeignete Modifikation des Algorithmus dafür Sorge zu tragen, dass nicht allein wegen der Look-Ahead-Symbole eine kombinatorische Explosion von Chart-Einträgen entsteht. 3. Wie eine der unter 2. angenommenen NP-Regeln zeigt, können in Grammatiken für natürliche Sprachen manche Konstituenten fakultativ sein. Auch diese Eigenschaft wäre zu protokollieren. 5.2 Scanner Der Scanner ist zuständig, wenn ein terminales Symbol zur Verarbeitung ansteht. Er überprüft, ob das terminale Symbol tatsächlich dem nun folgenden Element in der Eingabekette entspricht. Im Beispiel werden die folgenden Zustände durch den Scanner auf die Agenda geschrieben: eingelesen: s = 3 erzeugt: s = 4 NP dete nomn
12 12 eingelesen: s = 4 erzeugt: s = 5 NP dete nomn eingelesen: s = 7 erzeugt: s = 8 VP verb eingelesen: s= 10 erzeugt: s = 11 Φ S # # Die Spezifikation für den Scanner lautet: Scanner: wenn s nicht final ist und C p(j+1) ein Terminal-Symbol ist, und C p(j+1) = X i+1, dann soll ein Zustand <p,j+1,f,α> zur Zustandsmenge S i+1 hinzugefügt werden. Diese Spezifikation sei am Beispiel des eingelesenen Zustandes 3 und des erzeugten Zustandes 4 betrachtet: s (eingelesen) S i X i+1 s = < p, j, f, α > p D p C p1... C p p C p(j+1) 2 0 dete verb 2 NP dete nomn dete 3 1 nomn verb 2 NP dete nomn nomn der Eingelesener Zustand: <p, j, f, α> (Zustand 3) NP dete nomn Erzeugter Zustand: <p, j+1, f, α> (Zustand 4) NP dete nomn Es wird überprüft, ob noch Symbole der Produktion zur Erkennung anstehen (s ist nicht final, d.h. j p ), ob das anstehende Symbol C pj+1 ein Terminal-Symbol ist und ob das anstehende Symbol mit dem nächsten Symbol in der Eingabekette übereinstimmt (C p(j+1) = X i+1 ). Dann ist der Scanner zuständig. Bei der Erzeugung des neuen Zustandes wird dann lediglich notiert, dass der Punkt in der Produktion eine Position nach rechts verschoben wurde : (j +1). Auch die rechte Grenze der erkannten Eingabekette wird um eine Position nach rechts verschoben: (S i+1 ). Die anderen Objekte des Quadrupels werden vom eingelesenen Zustand übernommen, denn es handelt sich um dieselbe Produktion p, in der lediglich der neue Erkennungsstand notiert wird. 5.3 Completer Der Completer ist zuständig, wenn eine Konstituente vollständig erkannt wurde. Er hat die Aufgabe, die Mutterkonstituente aufzusuchen und einen neuen Zustand der Mutterkonstituente zu erzeugen. In diesem Zustand wird notiert, dass die vollständige erkannte Tochter-Konstituente gefunden wurde, indem der Punkt eine Position nach rechts geschoben wird.
13 13 Im Beispiel werden die folgenden Zustände durch den Completer auf die Agenda geschrieben: - eingelesen: s = 5 NP dete nomn Mutter: s = 2 S NP VP erzeugt: s = 6 S NP VP - eingelesen: s = 8 VP verb Mutter: s = 6 S NP VP erzeugt: s = 9 S NP VP - eingelesen: s = 9 S NP VP Mutter: s = 1 Φ S # # erzeugt: s = 11 Φ S # # Die Spezifikation für den Completer lautet: Completer: wenn s final ist und α = X i+1... X i+k, und alle Zustände der Zustandmenge S f bereits erzeugt wurden, dann soll für jeden Zustand <q,l,g,β> S f, für den C q(l+1) = D p, ein neuer Zustand <q,l+1,g,β> der Zustandsmenge S i hinzugefügt werden.. Diese Spezifikation sei am Beispiel des eingelesenen Zustandes 5, des Mutterzustandes 2 und des erzeugten Zustandes 6 betrachtet: s (eingelesen) S i X i+1 s = < p, j, f, α > p D p C p1... C p p 0 0 dete # 2 Φ S ## S 1 0 dete # 2 S NP VP NP C p(j+1) 2 0 dete verb 2 NP dete nomn dete 3 1 nomn verb 2 NP dete nomn nomn der 4 2 verb verb 2 NP dete nomn - Mensch 5 2 verb # 2 S NP VP VP Eingelesener Zustand: <p, j, f, α> (Zustand 5) NP dete nomn Mutterzustand: <q, l, g, β> (Zustand 2) S NP VP Erzeugter Zustand: <q, l+1, g, β> (Zustand 6) S NP VP
14 14 Eingelesen wird eine mit p bezeichnete Produktion, erzeugt wird eine mit q bezeichnete Produktion, also eine von der eingelesenen Produktion verschiedene Produktion. Allerdings steht die mit q bezeichnete Produktion bereits auf der Agenda, jedoch in einem anderen Zustand. Es handelt sich nämlich um die Mutterproduktion im Zustand vor der Erkennung der jetzt vervollständigten Tochterproduktion. Diese Vervollständigung soll an die Mutterproduktion zurückgemeldet werden, indem ein neuer Zustand der Mutterproduktion erzeugt wird, in der der Punkt eine Position weiter rechts notiert wird. Die Mutterproduktion (bzw. die Mutterproduktionen es können auch mehrere sein) werden über folgende Bedingungen identifiziert: Zustand <q,l,g,β> S f, und C q(l+1) = D p. Die Zustandsmenge in der gesucht werden soll, ist durch f bezeichnet. f ist durch den eingelesenen Zustand gegeben (dessen linke Grenze). In dieser Zustandsmenge sollen die Produktionen q gefunden werden, deren zur Verarbeitung anstehende Konstituente C q(l+1) identisch ist mit dem Kopf der eingelesenen Produktion p, m.a.w. all die Produktionen, die zur weiteren Verarbeitung auf die gerade vervollständigte Konstituente gewartet haben. Die Beschränkung der Suche auf die Zustandsmenge f stellt sicher, dass nur an die Stellen zurückgekehrt wird, die hier nach der aktuellen NP gesucht haben und nicht ggf. auch die, die möglicherweise eine an anderer Stelle im Satz vorkommende NP erwarten. 6 Literatur Earley, Jay (1970): An Efficient Context-Free Parsing Algorithm. In: Communications of the ACM, 6 (8), Hopcroft, John E. und Ullman Jeffrey D. (1988): Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. Addison-Wesley.
Der Earley-Algorithmus
Der Earley-Algorithmus Kursfolien Karin Haenelt 25.03.02 1 25.03.02 2 Inhalt Funktion des Earley-Algorithmus Begriffe Erkenner/Parser Kontextfreie Grammatik Ein Beispiel Funktionen des Algorithmus Funktionsweise
Einführung - Parser. Was ist ein Parser?
Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven
Parsing regulärer Ausdrücke. Karin Haenelt
Karin Haenelt 25.4.2009 1 Inhalt kontextfreie Grammatik für reguläre Ausdrücke Grundlagen Parsebaum: konkrete Syntax Syntaxbaum: abstrakte Syntax Algorithmus: rkennung Konstruktion des Syntaxbaumes 2 Grammatik
Operationen auf endlichen Akzeptoren und Transduktoren
Operationen auf endlichen Akzeptoren und Transduktoren Kursfolien Karin Haenelt Karin Haenelt 2006, Operationen auf Akzeptoren und Transduktoren, 08.07.2006 ( 1 05.04.2004) 1 Notationskonventionen L reguläre
Operationen auf endlichen Automaten und Transduktoren
Operationen auf endlichen Automaten und Transduktoren Kursfolien Karin Haenelt 1 Notationskonventionen L reguläre Sprache A endlicher Automat DEA deterministischer endlicher Automat NEA nichtdeterministischer
Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht
Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die
Überführung regulärer Ausdrücke in endliche Automaten
Der Algorithmus von Thompson Karin Haenelt 9.5.2010 1 Inhalt Quelle Prinzip des Algorithmus Algorithmus Konstruktion des Automaten Basisausdrücke Vereinigung, Konkatenation, Hülle Beispiel Implementierung
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät [email protected] Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale
Endliche Automaten. Minimierung. Karin Haenelt. Karin Haenelt, 2004, FSA-Minimierung, ( )
Endliche Automaten Minimierung Karin Haenelt 1 Inhalt Vorteile eines Minimalautomaten Fälle für die Minimierung Minimierungsalgorithmus für deterministische endliche Automaten (mit totaler Übergangsfunktion)
Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2011 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Wir beschäftigen uns ab
Automatentheorie und formale Sprachen
Automatentheorie und formale Sprachen VL 8 Chomsky-Grammatiken Kathrin Hoffmann 23. Mai 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 23.5. 2012 250 Wortproblem Wortproblem ist das
Übersicht. (A) Kontextfreie Sprachen (B) Syntaxanalyse (Parsing) (C) Grenzen der Kontextfreiheit
Übersicht (A) Kontextfreie Sprachen (B) Syntaxanalyse (Parsing) (C) Grenzen der Kontextfreiheit (B) Syntaxanalyse 1. Definition Parsing 2. Einfache Parsestrategien: Top-down Bottom-Up Probleme beim Parsen
Endliche Automaten. Grundlagen: Alphabet, Zeichenreihe, Sprache. Karin Haenelt
Endliche Automaten Grundlagen: Alphabet, Zeichenreihe, Sprache Karin Haenelt 1 Alphabet, Zeichenreihe und Sprache Alphabet unzerlegbare Einzelzeichen Verwendung: als Eingabe- und Ausgabezeichen eines endlichen
Formale Methoden 1. Gerhard Jäger 12. Dezember Uni Bielefeld, WS 2007/2008 1/22
1/22 Formale Methoden 1 Gerhard Jäger [email protected] Uni Bielefeld, WS 2007/2008 12. Dezember 2007 2/22 Bäume Baumdiagramme Ein Baumdiagramm eines Satzes stellt drei Arten von Information
Automaten und formale Sprachen Klausurvorbereitung
Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen
Operationen auf endlichen Akzeptoren und Transduktoren
Operationen auf endlichen Akzeptoren und Transduktoren Definitionen, Algorithmen, Erläuterungen und Beispiele - eine Übersicht Karin Haenelt, 28.5.2010 ( 1 25.04.2004) Operationen auf endlichen Akzeptoren
Lexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13
LR-Parsing Präsentation vom 19. Dez. 2012 Adriana Kosior, Sandra Pyka & Michael Weidauer Automatische Syntaxanalyse (Parsing) Wintersemester 12/13 Inhalte Einleitung LR(0) Parser LR(1) Parser Fazit Literatur
Syntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08
Überführung regulärer Ausdrücke in endliche Automaten. Der Algorithmus von Glushkov und McNaughton/Yamada
Überführung regulärer Ausdrücke in endliche Automaten Der Algorithmus von Glushkov und McNaughton/Yamada Karin Haenelt 14.5.2010 1 Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären
VU Software Paradigmen / SS 2014
VU Software Paradigmen 716.060 / SS 2014 Thorsten Ruprechter [email protected] Institute for Software Technology 1 Organisatorisches Ausgabe: 25.03. (heute) Fragestunde: 22.04. Abgabe: 29.04 (ausgedruckt)
Programmierkurs Python II
Programmierkurs Python II Michaela Regneri & Stefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 2011 Prüfungsleistungen Klausur am Semesterende -
Fachseminar Compilerbau
Fachseminar Compilerbau WS 08/09 Matthias Schiller Syntaktische Analyse 1. Prinzip der Top-Down-Analyse 2. LL(1)-Grammatiken Modell-Vorstellung Der Scanner liefert als Ergebnis der lexikalischen Analyse,
Einführung in die Computerlinguistik
Einführung in die Computerlinguistik Kontextfreie Sprachen und Pushdown-Automaten Dozentin: Wiebke Petersen WS 2004/2005 Wiebke Petersen Formale Komplexität natürlicher Sprachen WS 03/04 Wiederholung c
Repetitive Strukturen
Repetitive Strukturen Andreas Liebig Philipp Muigg ökhan Ibis Repetitive Strukturen, (z.b. sich wiederholende Strings), haben eine große Bedeutung in verschiedenen Anwendungen, wie z.b. Molekularbiologie,
Konstruieren der SLR Parsing Tabelle
Konstruieren der SLR Parsing Tabelle Kontextfreie Grammatik (CFG) Notation 1. Diese Symbole sind Terminals: (a) Kleinbuchstaben vom Anfang des Alphabets wie a, b, c. (b) Operator Symbole wie +,, usw. (c)
Kapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
Algorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
I.5. Kontextfreie Sprachen
I.5. Kontextfreie prachen Zieht man in Betracht, dass BNF-yteme gerade so beschaffen sind, dass auf der linken eite immer genau ein Nichtterminal steht, so sind das also gerade die Ableitungsregeln einer
Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen
Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Wörter Wort Sei Σ ein Alphabet, d.h., eine endliche Menge von Zeichen. Dann bezeichnet
Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:
4.7 Kellerautomaten In der Literatur findet man häufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch. Definition
Klammersprache Definiere
Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere
Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen
M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung
Kapitel IV Formale Sprachen und Grammatiken
Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist
Syntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß aus Molière, Les Femmes Savantes (1672), 2. kt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing Ziele Zwei Standards zur Definition der Syntax
Syntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp
Das Postsche Korrespondenzproblem
Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w
LL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt)
LL(k)-Analyse Eine KFG G = (N,T,P,S) heisst LL(k)-Grammatik, wenn für alle w,x,y T*, α,β,σ (N U T)* und A N mit 1. S =l>* waσ =l> wασ =l>* wx, 2. S =l>* waσ = > wβσ =l>* wy, 3. start k (x) = start k (y)
2.2 Syntax, Semantik und Simulation
2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?
Alphabet, formale Sprache
n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l
Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen
Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,
Programmierkurs Python II
Programmierkurs Python II Michaela Regneri & tefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des aarlandes ommersemester 2010 (Charniak, 1997) the dog biscuits N V N V the dog
Einführung Computerlinguistik. Konstituentensyntax II
Einführung Computerlinguistik Konstituentensyntax II Hinrich Schütze & Robert Zangenfeind Centrum für Informations- und Sprachverarbeitung, LMU München 2013-11-18 1 / 31 Take-away Phrasenstrukturgrammatik:
DisMod-Repetitorium Tag 4
DisMod-Repetitorium Tag 4 Endliche Automaten, Reguläre Sprachen und Kontextfreie Grammatiken 22. März 2018 1 Endliche Automaten Definition DFA Auswertungen Äquivalenzrelationen Verschmelzungsrelation und
Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An
Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,
Beispiel für die Minimierung von DEAs
Beispiel für die Minimierung von DEAs nach dem Verfahren aus [] (S. 7ff) Sebastian Wild und Markus E. Nebel 3. März 22 Gegeben sei folgender DEA A= ( {A,B,C,D,E,F,G,H}, {,}, δ, A, {C,F} ) mit start A B
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität
Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)
Kellerautomat (1/4) Kellerautomat (2/4) Kontextfreie Grammatiken können von Kellerautomaten (Push Down Automata, PDA) erkannt werden PDAs sind eine Erweiterung der endlichen Automaten um ein einfaches
Musterlösung Informatik-III-Nachklausur
Musterlösung Informatik-III-Nachklausur Aufgabe 1 (2+2+4+4 Punkte) (a) L = (0 1) 0(0 1) 11(0 1) 0(0 1) (b) Der Automat ist durch folgendes Übergangsdiagramm gegeben: 0, 1 0, 1 0, 1 0, 1 0 s q 1 1 0 0 q
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Ein Fragment von Pascal
Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
Grundlagen der Informatik II
Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s
Theoretische Informatik I
Theoretische Informatik I Rückblick Theoretische Informatik I 1. Mathematische Methoden 2. Reguläre Sprachen 3. Kontextfreie Sprachen Themen der Theoretischen Informatik I & II Mathematische Methodik in
Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen
Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien
Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
Sprachen sind durch folgenden Aufbau gekennzeichnet:
BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder
Informatik-Grundlagen
Informatik-Grundlagen Komplexität Karin Haenelt 1 Komplexitätsbetrachtungen: Ansätze Sprachentheorie Klassifiziert Mengen nach ihrer strukturellen Komplexität Komplexitätstheorie Klassifiziert Probleme
2. Übungsblatt 6.0 VU Theoretische Informatik und Logik
2. Übungsblatt 6.0 VU Theoretische Informatik und Logik 25. September 2013 Aufgabe 1 Geben Sie jeweils eine kontextfreie Grammatik an, welche die folgenden Sprachen erzeugt, sowie einen Ableitungsbaum
Algorithmen und Formale Sprachen
Algorithmen und Formale Sprachen Algorithmen und formale Sprachen Formale Sprachen und Algorithmen Formale Sprachen und formale Algorithmen (formale (Sprachen und Algorithmen)) ((formale Sprachen) und
Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie
Hochschuldozent Dr. Christian Schindelhauer Paderborn, den 21. 2. 2006 Lösungen zur 1. Klausur in Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Name :................................
Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER
Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.
Deterministischer Kellerautomat (DPDA)
Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,
Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,
Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen
Algorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p];
Algorithmus: 2 N result = ; // Ergebnis-Menge int count[p]; // Zähler für jede Regel 2 P rhs[n]; // VorkommeninrechtenSeiten forall (A N) rhs[a] = ; // Initialisierung forall ((A,i) P) { // count[(a,i)]
Informatik III - WS07/08
Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner [email protected] Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition
2.6 Deterministisches Top-Down-Parsen
48 2.6 Deterministisches Top-Down-Parsen Als nächstes wollen wir uns mit Methoden zur syntaktischen Analyse befassen. Der lexikale canner eines Compilers liest die Eingabe Zeichen für Zeichen und erzeugt
Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15
1/15 Formale Methoden 1 Gerhard Jäger [email protected] Uni Bielefeld, WS 2007/2008 28. November 2007 2/15 Formale Sprache: Menge von Symbolketten Theorie formaler Sprachen Formale Sprachen
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.02.2006 28. und letzte Vorlesung 1 Die Chomsky-Klassifizierung Chomsky-Hierachien 3: Reguläre Grammatiken
Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK
Theoretische Grundlagen der Informatik 0 08.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Letzte Vorlesung Eine
Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung
Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken.
