www.wikidata.de-de.nina.az
In der Theorie der formalen Sprachen ist eine kontextfreie Grammatik englisch context free grammar CFG eine formale Grammatik die nur solche Ersetzungsregeln enthalt bei denen immer genau ein Nichtterminalsymbol auf eine beliebig lange Folge von Nichtterminal und Terminalsymbolen abgeleitet wird Die Ersetzungsregeln haben also die Form V w displaystyle V rightarrow w mit Nichtterminalsymbol V displaystyle V und Zeichenkette w displaystyle w bestehend aus Nichtterminal und oder Terminalsymbolen Weil die linke Seite einer Regel nur aus einem einzigen Nichtterminalsymbol V displaystyle V besteht hangt ihre Anwendbarkeit auf eine Zeichenkette nur davon ab ob das Nichtterminalsymbol V displaystyle V 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 Inhaltsverzeichnis 1 Definition 1 1 Erlauterung 2 Von G erzeugte Sprache 3 Normalformen 4 Eigenschaften 4 1 Wortproblem 4 2 Mehrdeutigkeit 4 3 Aquivalenz 4 4 Teilmenge 4 5 Vereinigung 4 6 Schnitt 4 7 Komplement 5 Beispiele 5 1 Sprache der Palindrome 5 2 Mehrdeutiges Beispiel 6 Erweiterung 7 Siehe auch 8 Literatur 9 EinzelnachweiseDefinition BearbeitenEine kontextfreie Grammatik G displaystyle G nbsp ist ein 4 Tupel V T P S displaystyle V T P S nbsp mit folgenden Eigenschaften V displaystyle V nbsp ist eine endliche Menge genannt Vokabular einer Teilmenge T V displaystyle T subset V nbsp von Terminalsymbolen auch kurz Terminale genannt Dazu gehort die Differenzmenge N V T displaystyle N V setminus T nbsp von Nichtterminalsymbolen auch kurz Nichtterminale oder Variablen genannt N displaystyle N nbsp und T displaystyle T nbsp sind disjunkte Alphabeteeine endliche Menge an Produktionsregeln kurz Produktionen P N V displaystyle P subset N times V nbsp ein Startsymbol S N displaystyle S in N nbsp Hierbei bezeichnet displaystyle nbsp die Kleenesche Hulle Erlauterung Bearbeiten Manche Autoren bezeichnen alternativ das Quadrupel N T P S displaystyle N T P S nbsp als Grammatik G displaystyle G nbsp mit der Forderung dass N displaystyle N nbsp und T displaystyle T nbsp zwei endliche disjunkte Mengen sind und V N T displaystyle V N cup T nbsp Gelegentlich werden die Nichtterminale Variablen abweichend mit V displaystyle V nbsp und die Terminale oder das Gesamtvokabular mit S displaystyle Sigma nbsp bezeichnet Eine Regel a b P displaystyle alpha beta in P nbsp wird meist in der Form a b displaystyle alpha rightarrow beta nbsp notiert Gemass der Definition gilt fur eine Regel a b displaystyle alpha rightarrow beta nbsp dass a N displaystyle alpha in N nbsp 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 fur jede Zeichenkette die dieses Nichtterminal enthalt immer die gleichen Regeln zur Auswahl egal welche Zeichen das Nichtterminal a displaystyle alpha nbsp in einer Zeichenkette umgeben Kurz gesagt ist die Auswahl der Regeln unabhangig vom Kontext von a displaystyle alpha nbsp Von G erzeugte Sprache BearbeitenDie 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 R Q P displaystyle R rightarrow Q in P nbsp so angewendet dass in einem Wort w V displaystyle w in V ast nbsp mit R als Infix Teilwort englisch substring dieses durch Q ersetzt werden kann so dass ein neues Wort w displaystyle w prime nbsp mit Q displaystyle Q nbsp als Infix entsteht Die Menge P displaystyle P nbsp als Teilmenge eines kartesischen Produktes eine Relation wird dadurch erweitert zu G u R v u Q v u v V R Q P displaystyle rightsquigarrow G uRv uQv mid u v in V land R Q in P nbsp Diese Ersetzungen konnen mehrfach vorgenommen werden Wenn ein Wort v displaystyle v nbsp aus einem Wort u displaystyle u nbsp durch n fache Anwendung von displaystyle rightsquigarrow nbsp hervorgeht schreibt man u G n v displaystyle u rightsquigarrow G n v nbsp ist dies bei beliebiger endlicher Anwendung der Fall dann u G displaystyle u rightsquigarrow G nbsp Die Relation G displaystyle rightsquigarrow G nbsp Ableitung steht fur eine beliebige endliche Folge von Regelanwendungen bezuglich der Grammatik G displaystyle G nbsp Siehe dazu auch Homogene Relationen Die kontextfreie Sprache L G displaystyle L G nbsp die durch die kontextfreie Grammatik G displaystyle G nbsp generiert wird ist dann definiert als die Menge aller Worter die auf diese Weise aus dem Startsymbol abgeleitet werden konnen und die nur aus Terminalen bestehen L G w w T S G w displaystyle L G w mid w in T land S rightsquigarrow G w nbsp Es mussen vom Startsymbol S displaystyle S nbsp aus solange Nichtterminale mit Hilfe der Regeln ersetzt werden bis nur noch Terminale ubrig sind Offenbar gilt L G T displaystyle L G subseteq T nbsp 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 fur die Syntax der meisten Programmiersprachen Kontextfreie Sprachen konnen das leere Wort enthalten z B durch eine Produktionsregel S e displaystyle S rightarrow varepsilon nbsp Einige Satze uber kontextfreie Grammatiken fordern allerdings zusatzlich dass das leere Wort von ihr nicht erzeugt werden darf So gibt es z B nur zu den kontextfreien Grammatiken eine aquivalente Grammatik in Greibach Normalform wenn das leere Wort durch sie nicht erzeugt werden kann da in jedem Ableitungsschritt genau ein Terminal erzeugt wird Normalformen BearbeitenFur kontextfreie Grammatiken sind verschiedene Normalformen definiert Unter der Chomsky Normalform CNF sind die rechten Seiten der Nichtterminal Produktionen eingeschrankt 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 uberfuhrt 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 uberfuhrt werden Eigenschaften BearbeitenWortproblem Bearbeiten Das Wortproblem fur kontextfreie Sprachen also das Problem ob ein Wort w displaystyle w nbsp von einer kontextfreien Grammatik erzeugt werden kann ist entscheidbar 1 Auf dem Weg der Losung des Wortproblems kann zusatzlich ein Ableitungsbaum erzeugt werden Dieser Ableitungsbaum wird auch Parse Tree genannt und ein Programm welches einen Parse Tree erzeugt ist ein Parser Fur jede kontextfreie Grammatik kann automatisch ein Parser generiert werden siehe auch CYK Algorithmus Die Worst Case Laufzeitkomplexitat eines Parsers fur eine beliebige kontextfreie Grammatik liegt in O n 3 displaystyle mathcal O left n 3 right nbsp s Landau Symbole Fur Teilklassen von kontextfreien Grammatiken konnen Parser erzeugt werden deren Laufzeit in O n displaystyle mathcal O n nbsp liegt Ein typischer Anwendungsfall eines effizienten kontextfreien Parsers mit linearer Laufzeit ist das Parsen eines Programmiersprachen Quelltexts durch einen Compiler Wenn ein Wort w displaystyle w nbsp der Sprache L w L G displaystyle w in L G nbsp durch die Grammatik G displaystyle G nbsp auf mehrere verschiedene Arten erzeugt werden kann dann ist diese Grammatik mehrdeutig Ein Parser kann bei einer mehrdeutigen Grammatik fur ein gegebenes Wort nicht nur einen sondern mehrere Ableitungsbaume erzeugen Mehrdeutigkeit ist nicht problematisch wenn nur das Wortproblem gelost werden soll Wird aber den unterschiedlichen Ableitungsbaumen eine unterschiedliche Bedeutung zugeordnet dann kann ein Wort bei einer mehrdeutigen Grammatik mehrere unterschiedliche Bedeutungen haben Ein Beispiel fur die Notwendigkeit einer eindeutigen kontextfreien Grammatik ist ein Compiler der fur jede gultige Eingabe deterministisch und eindeutig ausfuhrbaren Zielcode erzeugen muss Mehrdeutigkeit Bearbeiten Das Problem ob eine beliebige kontextfreie Grammatik mehrdeutig oder nicht mehrdeutig ist ist nicht entscheidbar 2 Es existieren aber Testverfahren die fur bestimmte Teilklassen der kontextfreien Grammatiken Mehrdeutigkeit bzw Nicht Mehrdeutigkeit feststellen konnen 3 Je nach Testverfahren terminiert der Mehrdeutigkeits Test nicht oder der Test liefert zuruck dass die Mehrdeutigkeit nicht festgestellt werden kann falls die kontextfreie Eingabe Grammatik nicht Element einer bestimmten Teilklasse von kontextfreien Grammatiken ist Aquivalenz Bearbeiten Das Problem ob zwei kontextfreie Grammatiken G 1 displaystyle G 1 nbsp und G 2 displaystyle G 2 nbsp die gleiche Sprache generieren also ob L G 1 L G 2 displaystyle L G 1 L G 2 nbsp ist nicht entscheidbar 4 Teilmenge Bearbeiten Das Problem ob die durch eine kontextfreie Grammatik G 1 displaystyle G 1 nbsp erzeugte Sprache auch von einer kontextfreien Grammatik G 2 displaystyle G 2 nbsp erzeugt wird also ob L G 1 L G 2 displaystyle L G 1 subseteq L G 2 nbsp ist nicht entscheidbar 4 Vereinigung Bearbeiten Die Vereinigung L G 1 L G 2 displaystyle L G 1 cup L G 2 nbsp der Sprachen zweier kontextfreier Grammatiken G 1 V 1 T 1 P 1 S 1 displaystyle G 1 V 1 T 1 P 1 S 1 nbsp und G 2 V 2 T 2 P 2 S 2 displaystyle G 2 V 2 T 2 P 2 S 2 nbsp kann ebenfalls von einer kontextfreien Grammatik erzeugt werden namlich G 1 G 2 S V 1 V 2 T 1 T 2 P 1 P 2 S S 1 S S 2 S 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 nbsp Dabei wird vorausgesetzt dass die beiden Nichtterminalmengen N 1 V 1 T 1 displaystyle N 1 V 1 setminus T 1 nbsp und N 2 V 2 T 2 displaystyle N 2 V 2 setminus T 2 nbsp disjunkt sind N 1 N 2 displaystyle N 1 cap N 2 emptyset nbsp und S displaystyle S nbsp ein beliebiges zusatzliches Zeichen ist S N 1 N 2 T 1 T 2 displaystyle S notin N 1 cup N 2 cup T 1 cup T 2 nbsp was aber fur alle G 1 G 2 displaystyle G 1 G 2 nbsp erreicht werden kann Schnitt Bearbeiten Das Problem ob der Schnitt der Sprachen zweier kontextfreier Grammatiken G 1 G 2 displaystyle G 1 G 2 nbsp ebenfalls von einer kontextfreien Grammatik erzeugt wird ist nicht entscheidbar 4 Komplement Bearbeiten Das Komplement einer kontextfreien Grammatik ist im Allgemeinen nicht kontextfrei Beispiele BearbeitenSei G V T P S displaystyle G V T P S nbsp eine kontextfreie Grammatik mit N V T displaystyle N V setminus T nbsp undT x y z displaystyle T x y z nbsp N S A B displaystyle N S A B nbsp P displaystyle P nbsp enthalt 4 Produktionen bzw Produktionsregeln S A A x A y A x B y B z displaystyle begin aligned S amp rightarrow amp A A amp rightarrow amp xAy A amp rightarrow amp xBy B amp rightarrow amp z end aligned nbsp w 1 x x z y y displaystyle w 1 xxzyy nbsp kann durch die Grammatik G displaystyle G nbsp mit folgender Ableitung erzeugt werden t w 1 S A x A x B z y y displaystyle t w 1 S A x A x B z y y nbsp t w 1 displaystyle t w 1 nbsp ist der Ableitungsbaum in Term Schreibweise Die Wurzel und die inneren Knoten sind mit Nichtterminal Symbolen und die Blatter mit Terminal Symbolen beschriftet Also ist w 1 L G displaystyle w 1 in L G nbsp Das Beispiel Wort w 2 displaystyle w 2 nbsp mit w 2 z displaystyle w 2 z nbsp ist nicht Teil der Sprache L G displaystyle L G nbsp da das Nichtterminal B displaystyle B nbsp nicht das Startsymbol ist und uber das Startsymbol jedes Wort der Sprache von den Terminal Symbolen x displaystyle x nbsp und y displaystyle y nbsp eingeschlossen sein muss In Formelschreibweise w 2 L G displaystyle w 2 notin L G nbsp Grammatik G displaystyle G nbsp ist nicht mehrdeutig Sprache der Palindrome Bearbeiten Die Grammatik G S a b a b P S displaystyle G S a b a b P S nbsp mit P displaystyle P nbsp gegeben als S e a b a S a b S b displaystyle S rightarrow varepsilon a b aSa bSb nbsp erzeugt die Sprache aller Palindrome uber dem Alphabet a b displaystyle a b nbsp Mehrdeutiges Beispiel Bearbeiten Ein Beispiel fur eine mehrdeutige Grammatik ist G 2 V 2 T 2 P 2 S 2 displaystyle G 2 V 2 T 2 P 2 S 2 nbsp mit N 2 V 2 T 2 displaystyle N 2 V 2 setminus T 2 nbsp undT 2 x y displaystyle T 2 x y nbsp N 2 S 2 A displaystyle N 2 S 2 A nbsp P 2 displaystyle P 2 nbsp enthalt folgende Produktionen S 2 A A A A A x A y A e displaystyle begin aligned S 2 amp rightarrow amp A A amp rightarrow amp AA A amp rightarrow amp xAy A amp rightarrow amp varepsilon end aligned nbsp Fur w 3 x y displaystyle w 3 xy nbsp existieren unter anderem die Ableitungen S 2 A x A e y displaystyle S 2 A x A varepsilon y nbsp S 2 A A e A x A e y displaystyle S 2 A A varepsilon A x A varepsilon y nbsp und S 2 A A x A e y A e displaystyle S 2 A A x A varepsilon y A varepsilon nbsp Also ist G 2 displaystyle G 2 nbsp mehrdeutig Erweiterung BearbeitenEine Erweiterung der kontextfreien Grammatiken bilden stochastische kontextfreie Grammatiken SCFG auch bekannt als probabilistische kontextfreie Grammatiken PCFG Hier wird jeder Produktionsregel eine Auftrittswahrscheinlichkeit zugeordnet r P R 0 displaystyle rho colon P rightarrow mathbb R geq 0 nbsp so dass fur jedes a N displaystyle alpha in N nbsp gerade b a b P r a b 1 displaystyle sum begin smallmatrix beta alpha beta in P end smallmatrix rho alpha beta 1 nbsp ist Diese Auftrittswahrscheinlichkeiten der einzelnen Regeln induzieren eine Wahrscheinlichkeitsverteilung auf der Menge der von der Grammatik erzeugten Worter Eine stochastisch kontextfreie Grammatik kann beispielsweise dazu verwendet werden fur ein Eingabewort den wahrscheinlichsten Parse in einer syntaktisch mehrdeutigen Grammatik zu berechnen Ein anderer Anwendungsfall ist das stochastische Samplen von Ableitungsbaumen 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 BearbeitenBackus Naur Form Lineare Grammatik Tree Adjoining GrammarLiteratur BearbeitenJohn 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 Schoning Theoretische Informatik kurzgefasst 4 Auflage Spektrum Akademischer Verlag Berlin 2001 ISBN 3 8274 1099 1 S 13 51 Einzelnachweise Bearbeiten Uwe Schoning Theoretische Informatik kurz gefasst 5 Auflage Spektrum Akademischer Verlag Heidelberg 2008 ISBN 978 3 8274 1824 1 S 13 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 H J S Basten Ambiguity Detection Methods for Context Free Grammars 17 August 2007 cwi nl PDF Master Thesis a b c Schoning 2001 S 137 Abgerufen von https de wikipedia org w index php title Kontextfreie Grammatik amp oldid 238361364