Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken. Eine rammatik ist ein Quadrupel (N,T,P,S) wobei N das Alphabet der Nonterminale (Variablen), T das Alphabet der Terminalsymbole, P eine Menge von Produktionen, S N das Startsymbol (S N* das Axiom) ist. Üblicherweise ist N T = {}. Wir definieren V := N T. P V + V*, d.h., jede Produktion p aus P ist von der estalt p = (α,β) mit α V + und β V*. Anstelle von (α,β) schreiben wir auch α β. 2 rammatiken: Ableitung Sei = (N,T,P,S) eine rammatik. Ein Wort w V* heißt ableitbar in aus dem Wort v V +, in Symbolen v w, falls Wörter x,y V* derart existieren, dass v = xαy und w = xβy für eine Produktion (α,β) P gilt. Durch wird eine Relation über V* definiert. * n Reflexive und transitive Hülle von Ableitung in einem Schritt Ableitung in n Schritten Ist eindeutig aus dem Zusammenhang erkennbar, so schreiben wir statt etc. 3 rammatiken: erzeugte Sprache Sei = (N,T,P,S) eine rammatik. ilt S w für ein Wort w V*, so nennt man w Satzform. Menge aller in n Schritten ableitbaren Satzformen: n SF(,n) = {w V* S w } Die von erzeugte Sprache ist die Menge aller Wörter (Satzformen), die in beliebig vielen Schritten von S abgeleitet werden können und nur aus Terminalsymbolen bestehen: L() = { w T* S * w } 4
rammatiken: Beispiel 1 1 = ( { S }, {a}, {S ε, S as}, S) L( 1 ) = {ε} { a n n 1 } = {a}* Alle in möglichen Ableitungen sind von der estalt S ε bzw. S as n a n+1 S a n+1 für ein n 1. rammatiken: Beispiel 2 2 = ( {S}, {a,b}, { S asb, S ε}, S) L( 2 ) = { a n b n n 0 } Alle in möglichen Ableitungen sind von der estalt S n a n Sb n a n b n für alle n 0. Formaler Beweis mittels natürlicher Induktion: Menge aller Satzformen nach genau n Schritten: SF( 2,n) = { a n Sb n, a n-1 b n-1 } 5 6 rammatiken: Beispiel 2 (Induktion) 2 = ( {S}, {a,b}, { S asb, S ε}, S) Formaler Beweis mittels natürlicher Induktion. Menge aller Satzformen nach genau n 1 Schritten: SF( 2, n) = { a n Sb n, a n-1 b n-1 } Induktionsbasis: SF( 2,1) = { a 1 Sb 1, ε } Induktionshypothese: SF( 2,n) = { a n Sb n, a n-1 b n-1 } Induktionsbehauptung: SF( 2,n+1) = { a n+1 Sb n+1, a n b n } Beweis: Das Wort a n-1 b n-1 ist terminal und daher nicht mehr weiter ableitbar. Aus a n Sb n ist ableitbar: mittels S asb : a n+1 Sb n+1 mittels S ε : a n b n rammatiken: Beispiel 3 3 = ( {S,A,C}, {a,b,c}, P 3, S) wobei P 3 = { S abc, S aabc, A aabc, A abc, Cb bc, Cc cc} L( 3 ) = {a n b n c n n 1 } Alle in möglichen Ableitungen sind von der estalt S abc bzw. für n 2 : S aabc n-2 a n-1 A(bC) n-2 bc a n (bc) n-1 bc * a n b n c n sowie alle möglichen Permutationen der einzelnen Ableitungsschritte. 7 8
rammatik-typen Die vorhergehenden Beispiele zeigen, dass zur Erzeugung bestimmter formaler Sprachen Produktionen mit wachsender Komplexität benötigt werden. Aufgrund dieser Komplexität der Produktionen können wir verschiedene Typen von rammatiken definieren. Typ-i-rammatiken Sei =(N,T,P,S) eine rammatik. Dann heißt auch unbeschränkte rammatik (Typ-0). ilt für alle Produktionen (α,β) P α β, so heißt monoton; α = uav und β = uwv für ein A N, w V + und u,v V*, so heißt kontextsensitiv (Typ-1) für monoton und kontextsensitiv außerdem erlaubt: kommt S nicht auf der rechten Seite einer Produktion vor, so ist auch S ε erlaubt; A β für ein A N, so heißt kontextfrei (Typ-2); A ab oder A ε für A,B N und a T, so heißt regulär (Typ-3). 9 10 Erzeugte Sprachen Eine formale Sprache heißt rekursiv aufzählbar, monoton (kontextsensitv), kontextfrei bzw. regulär, wenn sie von einer Typ-0-, Typ-1-, Typ-2-, bzw. Typ-3-rammatik erzeugt wird. Aufgrund der Definition können wir nun die einzelnen Sprachen aus den vorigen Beispielen klassifizieren: Es ergibt sich, dass L( 1 ) regulär L( 2 ) kontextfrei und L( 3 ) monoton ist. Äquivalenz von kontextsensitiven und monotonen rammatiken Nach Definition ist jede kontextsensitive rammatik auch eine monotone rammatik. Es gilt allerdings auch die Umkehrung: Satz. Zu jeder monotonen rammatik kann man eine äquivalente kontextsensitive rammatik konstruieren. Aufgabe*: Beweisen Sie den obigen Satz. Zwei rammatiken und heißen äquivalent, wenn L() = L( ). 11 12
Sprachfamilien (rekursive Sprachen) Sei Σ ein Alphabet. Eine formale Sprache L Σ* heißt genau dann rekursiv, wenn sowohl L L 0 als auch Σ*-L L 0 gilt. Die Menge aller rekursiven Sprachen über Σ wird mit L rek (Σ), die Familie aller rekursiven Sprachen mit L rek bezeichnet. Eine formale Sprache L ist also genau dann rekursiv, wenn sowohl die Sprache L selbst als auch ihr Komplement Σ*-L rekursiv aufzählbar sind. Damit bildet L rek aber auch die größte Sprachfamilie, für die das Problem w L für alle w Σ* entscheidbar ist. Entscheidbarkeit des Wortproblems für rekursive Sprachen Das Problem w entscheidbar. L ist für rekursive Sprachen Betrachte rammatik mit L() = L und rammatik mit L( ) = Σ* - L. Berechne für n = 1,2, SF(,n) und SF(,n). Nach Definition von und muss es ein n so geben, dass w SF(,n) (d.h., w L) oder w SF(,n) (d.h., w Σ* - L). Das Problem w entscheidbar. L ist für rekursive Sprachen 13 14 Sprachfamilien Jeder der vorgestellten rammatiktypen definiert auch eine Familie formaler Sprachen: Die Chomsky Hierarchie NOAM CHOMSKY (*1928 ) Sei i {0,1,2,3} und Σ ein Alphabet. Dann wird die Menge aller formaler Sprachen L Σ*, die von einer rammatik vom Typ i erzeugt werden können, mit L i (Σ) bezeichnet. Die Familie der formalen Sprachen, die von einer Typ-i-rammatik erzeugt werden können, bezeichnen wir mit L i. 1959 : On certain formal properties of grammars. Information and Control 2 (1959), 137-167 15 16
Die Chomsky Hierarchie L 3 L 2 L 1 L rek L 0 renzen der Berechenbarkeit (rammatiken) Im folgenden wollen wir kurz auf die Möglichkeiten des Berechnungsmodells der rammatiken eingehen und dessen renzen aufzeigen. L 0 L rek L 1 L 2 L 3 Sei Σ ein beliebiges Alphabet. Σ* ist abzählbar. 2 Σ * ist überabzählbar. Es bleibt nur zu zeigen, dass Σ* abzählbar ist. Aber Σ n ist für jedes n N endlich: card(σ 0 ) = card(ε)=1; für n>0 gilt: card(σ n ) = (card(σ)) n 17 renzen der Berechenbarkeit (rammatiken) renzen der Berechenbarkeit Die Menge aller formaler Sprachen L Σ* ist überabzählbar, doch nur eine abzählbare Menge davon ist von einer rammatik erzeugbar. (Kodierung der Beschreibungen von rammatiken mit Terminalalphabet Σ durch Zeichenketten über Σ und endlich vielen zusätzlichen Symbolen: {, },,, (, ) sowie einem zusätzlichen Symbol nicht aus Σ zur Kodierung der Nonterminalsymbole). Die Menge aller formalen Sprachen L Σ*, die von einer rammatik erzeugt werden können, ist abzählbar. ibt es aber vielleicht andere Modelle von enerierungsoder Analysemechanismen, durch die mehr formale Sprachen als durch Typ-0-rammatiken beschrieben werden können? 19 1936 erfanden gleichzeitig Alan Turing die Turingmaschinen und Alonzo Church den λ-kalkül, um den Begriff des Algorithmus bzw. der berechenbaren Funktionen zu formalisieren, und beide Modelle erwiesen sich als gleichwertig. Auch alle anderen seither entwickelten Modelle zur Formalisierung des Begriffs Algorithmus erwiesen sich als nicht mächtiger als Typ-0-rammatiken bzw. Turingmaschinen. Die folgende These wird daher allgemein akzeptiert: These von Turing (und Church) ibt es ein endlich beschreibbares Verfahren zur exakten Spezifizierung einer formalen Sprache L, so gibt es eine Typ-0-rammatik, die L erzeugt bzw. eine Turingmaschine, die L akzeptiert. 20