www.wikidata.de-de.nina.az
Als Ableitung wird in der theoretischen Informatik der Vorgang bezeichnet ein Wort nach den Regeln einer formalen Grammatik zu erzeugen Unter einem Wort versteht man eine beliebige Zeichenkette also eine endliche Folge von Symbolen Eine formale Grammatik ist ein mathematisches Modell das eine Menge solcher ableitbaren Worter festlegt Diese Menge nennt man eine formale Sprache Das einmalige Ersetzen von einem Teilabschnitt einer Zeichenkette gemass einer der Regeln der formalen Grammatik stellt einen Ableitungsschritt dar Durch die formale Grammatik werden auch die Symbole festgelegt aus denen ein Wort bestehen darf und solche die alleine in den Zwischenergebnissen der Ableitung eines Wortes auftreten durfen Zum Ableiten eines Wortes beginnt man mit einem besonderen Symbol dem Startsymbol und fuhrt dann nacheinander Ableitungsschritte durch bei Wahl geeigneter Regeln bis schliesslich das Wort erzeugt worden ist Inhaltsverzeichnis 1 Anwendungsbereich 2 Definitionen 2 1 Satzform 2 2 Ableitungsschritt 2 3 Ableitungsstuck 2 4 Ableitung 2 5 Erzeugte Sprache 3 Beispiele 3 1 Sprache der Palindrome 3 2 Sprache der positiven geraden Ganzzahlen 3 3 Sprache der Strichzahlen 4 Parsen 5 Rechtsableitung 6 Linksableitung 7 Literatur 8 EinzelnachweiseAnwendungsbereich Bearbeiten nbsp Darstellung eines AbleitungsbaumsDie Frage nach der Zugehorigkeit eines Wortes zu einer Sprache wird Wortproblem genannt Ob ein Wort zur Sprache einer Grammatik gehort wird daruber definiert ob eine Ableitung des Wortes existiert Eine Ableitung eines Wortes nach den Regeln einer Grammatik ist deshalb ein mathematischer Beweis dafur dass das Wort zur Sprache der gegebenen Grammatik gehort Bei geeigneten Grammatiken den kontextfreien ergibt sich aus der Ableitung eines Wortes ein Ableitungsbaum Zu einer Ableitung existiert in der Regel genau ein Ableitungsbaum Gibt es aber zu einem Wort mehrere Ableitungen die auch unterschiedliche Ableitungsbaume ergeben ist die Grammatik mehrdeutig Der Syntaxanalyseteil Parser eines Compilers analysiert den Quelltext eines Programms anhand der Grammatikregeln der verwendeten Programmiersprache Dabei stellt er auch fest ob das Programm ein Wort der betreffenden Programmiersprache ist ob es also syntaktisch korrekt ist Bei der Analyse des Quelltexts sucht der Parser indirekt nach einer Ableitung Scheitert er dabei weil das Programm einen Syntaxfehler enthalt ist nachgewiesen dass zu dem Programm keine Ableitung existiert In der genetischen Programmierung verwendet man einem Ansatz zufolge zufallige Ableitungsbaume einer Grammatik um Losungen zu generieren 1 Definitionen BearbeitenSei G V T P S displaystyle G left V T P S right nbsp eine Chomsky Grammatik T displaystyle T nbsp steht dabei fur das endliche Alphabet der Terminale also fur Zeichen der zu erzeugenden Sprache die nicht weiter abgeleitet werden V displaystyle V nbsp steht fur das gesamte Vokabular an Zeichen das neben den Terminalen auch die Nonterminale oder Nichtterminalsymbole aus N displaystyle N nbsp V T displaystyle V setminus T nbsp also die Zeichen die noch zu Terminalen umgewandelt werden mussen und deshalb gelegentlich auch Variablen genannt werden Das Startsymbol S displaystyle S nbsp ist ein Nichtterminal Ein Zeichen kann nicht gleichzeitig Terminal und Nichtterminal sein Die Produktionsregeln P displaystyle P nbsp beschreiben in welcher Weise die Nichtterminale zu Terminale abgeleitet werden Manche Autoren bezeichnen alternativ das 4 Tupel N T P S displaystyle N T P S nbsp als Grammatik G displaystyle G nbsp mit der Forderung dass der Disjunktheit von Nonterminal und die Terminalmenge N T displaystyle N cap T emptyset nbsp zum Teil werden auch anderen Bezeichnungen fur die einzelnen Komponenten verwendet Satzform Bearbeiten Eine Satzform x displaystyle x nbsp einer Grammatik G displaystyle G nbsp ist eine Folge von Symbolen aus N displaystyle N nbsp oder T displaystyle T nbsp x N T V displaystyle x in left N cup T right V nbsp Ableitungsschritt Bearbeiten Ein Ableitungsschritt ist ein Teil einer Ableitung der mit einer Produktionsregel ein w displaystyle w nbsp nach einem w displaystyle w nbsp uberfuhrt w displaystyle w nbsp und w displaystyle w nbsp sind dabei Folgen aus Terminalen und Nichtterminalen Eine Ableitungsregel p a b displaystyle p alpha beta nbsp wird formal notiert als p a b displaystyle p alpha rightarrow beta nbsp Die zulassigen a displaystyle alpha nbsp und b displaystyle beta nbsp unterliegen dabei je nach dem Typ der Grammatik mehr oder weniger starken Einschrankungen Liegt ein Wort w w 1 a w 2 V displaystyle w w 1 alpha w 2 in V nbsp vor so lasst sich die Produktionsregel a b P displaystyle alpha rightarrow beta in P nbsp auf w displaystyle w nbsp anwenden mit dem resultierenden Wort w w 1 b w 2 displaystyle w w 1 beta w 2 nbsp Man schreibt dann w w displaystyle w rightsquigarrow w nbsp oder auch w G w displaystyle w Rightarrow G w nbsp Um anzugeben welche Produktionsregel benutzt wurde schreibt man auch w a b w displaystyle w rightsquigarrow alpha rightarrow beta w nbsp Formal ist die Relation displaystyle rightsquigarrow nbsp auf der Menge aller Worte aus Terminalen und Nichtterminalen gegeben durch w a w w b w a b P w w V displaystyle rightsquigarrow w alpha w w beta w alpha beta in P land w w in V nbsp Ableitungsstuck Bearbeiten Ein Ableitungsstuck ist eine endliche Folge w 0 w n displaystyle w 0 dotsc w n nbsp 2 von Satzformen worin jede folgende stets aus der unmittelbaren Vorgangerin durch einen Ableitungsschritt hervorgeht Geschrieben kurz w 0 G w 1 G G w n displaystyle w 0 rightsquigarrow G w 1 rightsquigarrow G dotsb rightsquigarrow G w n nbsp Werden mehrere Regeln auf einmal angewendet schreibt man w G w displaystyle w rightsquigarrow G w nbsp in Analogie zur Kleeneschen Hulle siehe Relationen Homogene Relationen Formal ist die Relation G displaystyle rightsquigarrow G nbsp als Vereinigung wie folgt darstellbar G n N 0 G n displaystyle rightsquigarrow G bigcup n in mathbb N 0 rightsquigarrow G n nbsp Ableitung Bearbeiten Eine Ableitung ist ein Ableitungsstuck das mit dem Startsymbol beginnt und dessen letzte Satzform ein Wort ist Eine Ableitung in n Schritten S G n w n displaystyle S rightsquigarrow G n w n nbsp lasst sich also als S w 1 G w 2 G G w n displaystyle S rightsquigarrow w 1 rightsquigarrow G w 2 rightsquigarrow G dotsb rightsquigarrow G w n nbsp notieren wobei w n T displaystyle w n in T nbsp nur noch Terminalsymbole enthalt Nichtberucksichtigung der endlichen Zahl von Schritten fuhrt zu S G w displaystyle S rightsquigarrow G w nbsp wenn w n T displaystyle w n in T nbsp aus S displaystyle S nbsp ableitbar ist Erzeugte Sprache Bearbeiten Die von G displaystyle G nbsp erzeugte Sprache L G displaystyle L G nbsp ist die Menge aller Worte uber dem Zeichenalphabet T displaystyle T nbsp die am Ende einer Ableitung stehen man sagt auch die ableitbar sind L G w T S G w w T S G G w displaystyle L G w in T S rightsquigarrow G w w in T S rightsquigarrow G cdots rightsquigarrow G w nbsp Im Allgemeinen sind auf eine Satzform mehrere verschiedene Produktionen anwendbar und ein und dieselbe Produktion kann auch an verschiedenen Stellen anwendbar sein Beispiele BearbeitenSprache der Palindrome Bearbeiten nbsp Ein Ableitungsbaum fur abcacbaPalindrome lassen sich durch eine kontextfreie Grammatik erzeugen Wir beschranken uns im Beispiel auf ein Alphabet aus den drei Buchstaben a displaystyle a nbsp b displaystyle b nbsp und c displaystyle c nbsp G 1 V T S P displaystyle G 1 left V T S P right nbsp mit N V T displaystyle N V setminus T nbsp und N S displaystyle N S nbsp T a b c displaystyle T a b c nbsp P S a S a S b S b S c S c S a S b S c S ϵ displaystyle P S rightarrow aSa S rightarrow bSb S rightarrow cSc S rightarrow a S rightarrow b S rightarrow c S rightarrow epsilon nbsp ϵ displaystyle epsilon nbsp steht fur das leere Wort Mit dieser Grammatik lassen sich alle aus a displaystyle a nbsp b displaystyle b nbsp und c displaystyle c nbsp bestehenden Palindrome erzeugen Eine Ableitung des Wortes a b c a c b a displaystyle abcacba nbsp lautet S a S a a b S b a a b c S c b a a b c a c b a displaystyle S rightsquigarrow aSa rightsquigarrow abSba rightsquigarrow abcScba rightsquigarrow abcacba nbsp Sprache der positiven geraden Ganzzahlen Bearbeiten Auf eine formale Notation der Grammatik G 2 displaystyle G 2 nbsp wurde an dieser Stelle verzichtet Die Zahlen konnen beliebig viele fuhrende Nullen haben Die Terminale sind die Ziffern von 0 displaystyle 0 nbsp bis 9 displaystyle 9 nbsp T 0 9 displaystyle T 0 9 nbsp als Nonterminale dienen A displaystyle A nbsp und S displaystyle S nbsp N A S displaystyle N A S nbsp wobei letzteres gleichzeitig das Startsymbol ist T 0 9 N A S displaystyle T 0 9 N A S nbsp Die Produktionsregeln P displaystyle P nbsp sind S A 0 A 2 A 4 A 6 A 8 displaystyle S rightarrow A0 A2 A4 A6 A8 nbsp A A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 ϵ displaystyle A rightarrow A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 epsilon nbsp X a b displaystyle X rightarrow a b dots nbsp ist eine Kurzschreibweise fur X a X b displaystyle X rightarrow a X rightarrow b dots nbsp Die Ableitung beginnt mit einer Regel die auf der linken Seite das Startsymbol S displaystyle S nbsp enthalt Die Ableitung beginnt beispielsweise mit S A 2 displaystyle S rightsquigarrow A2 nbsp Die 2 displaystyle 2 nbsp am Ende kann durch Regelanwendungen nicht entfernt werden die entstehende Zahl ist also auf jeden Fall gerade Das A displaystyle A nbsp muss nun nach einer der Regeln mit A displaystyle A nbsp auf der linken Seite weiter ersetzt werden Eine mogliche Fortsetzung der Ableitung ist A 2 A 42 displaystyle A2 Rightarrow A42 nbsp Es konnen noch weitere Ziffern erzeugt werden da am Ende der Ableitung aber alle Nichtterminale verschwunden sein mussen muss irgendwann die Regel A ϵ displaystyle A rightarrow epsilon nbsp Anwendung finden ϵ displaystyle epsilon nbsp ist das leere Wort umgangssprachen kann man sagen dass das A displaystyle A nbsp durch nichts ersetzt wird Die Beispielableitung wird also mit A 42 42 displaystyle A42 rightsquigarrow 42 nbsp abgeschlossen Mit den Produktionsregeln lasst sich jede beliebige positive gerade Zahl erzeugen Andere Zahlen lassen sich mit ihnen nicht erzeugen Sprache der Strichzahlen Bearbeiten Die Sprache der Strichzahlen wird etwa erzeugt von G 3 Z i i Z i Z i Z Z displaystyle G 3 left Z i i Z rightarrow i Z rightarrow iZ Z right nbsp wobei mit i displaystyle i nbsp der Ziffernstrich bezeichnet ist Die Ableitung die zur 5 Strichzahl fuhrt ist etwa Z Z i Z i Z Z i Z i i Z Z i Z i i i Z Z i Z i i i i Z Z i i i i i i displaystyle Z rightsquigarrow Z rightarrow iZ iZ rightsquigarrow Z rightarrow iZ iiZ rightsquigarrow Z rightarrow iZ iiiZ rightsquigarrow Z rightarrow iZ iiiiZ rightsquigarrow Z rightarrow i iiiii nbsp Im Falle dieser Grammatik enthalt jede Satzform keinmal oder genau einmal die Z die in diesem Falle auch stets am Ende der Satzform steht Es sind also alle Ableitungen Rechtsableitungen Jedes Strichzahl hat mit dieser Grammatik genau eine mogliche Ableitung Dieselbe Sprache wird ebenfalls erzeugt von der Grammatik G 4 Z i i Z i Z Z Z Z displaystyle G 4 left Z i i Z rightarrow i Z rightarrow ZZ Z right nbsp Das folgende ist damit eine Ableitung fur die 3 Strichzahl Z Z Z Z Z Z Z Z Z Z Z Z Z i Z Z i Z i Z i i Z i i i i displaystyle Z rightsquigarrow Z rightarrow ZZ ZZ rightsquigarrow Z rightarrow ZZ ZZZ rightsquigarrow Z rightarrow i ZZi rightsquigarrow Z rightarrow i Zii rightsquigarrow Z rightarrow i iii nbsp Man beachte im zweiten Schritt bleibt hierbei unklar ob das rechte oder das linke Z displaystyle Z nbsp in Z Z displaystyle ZZ nbsp durch ein weiteres Z Z displaystyle ZZ nbsp ersetzt wird beidesmal entsteht zunachst Z Z Z displaystyle ZZZ nbsp Mit der Angabe dass es sich um eine Rechtsableitung handle wird die Ersetzungsstelle eindeutig Dieselbe Eindeutigkeit wird erreicht wenn man immer die genaue Stelle der Ersetzung den sogenannten Henkel englisch handle mit angibt Parsen BearbeitenDen umgekehrten Vorgang bei dem ein Wort gegeben ist und eine Ableitung gesucht ist nennt man auch parsen Hierbei finden Automaten Anwendung die uberprufen ob das gegebene Wort aus den Ableitungsregeln entstanden sein kann Von besonderer Bedeutung ist die Syntaxuberprufung bei Programmiersprachen Da es sich hierbei haufig um kontextfreie Sprachen handelt ist ein Kellerautomat notig Rechtsableitung BearbeitenEine Ableitung heisst Rechtsableitung englisch rightmost derivation wenn in jedem ihrer Einzelschritte immer das am weitesten rechts stehende Nichtterminalsymbol der Satzform gemass einer Produktion ersetzt wird Beachte Von Rechtsableitung spricht man nur wenn eine kontextfreie Grammatik Chomsky Grammatik vom Typ 2 vorliegt solche Grammatiken sind auch der in der Praxis der Informatik am haufigsten auftretende Sprachtyp In diesem Fall hat jede Produktion die einfache Gestalt A a displaystyle A rightarrow alpha nbsp alle linken Seiten sind also einzelne Nichtterminalsymbole die rechten bleiben beliebig Der einzelne Ableitungsschritt ersetzt deshalb ein Vorkommnis eines Nichtterminalsymbols A displaystyle A nbsp in der Ausgangs Satzform durch eine der moglichen rechten Seiten a displaystyle alpha nbsp mit A a P displaystyle A rightarrow alpha in P nbsp Im Falle von Rechtsableitungen genugt die Angabe allein der Folge angewandter Produktionen um den Gesamt Ersetzungsvorgang welche Ersetzungen an welchen Stellen und sein Ergebnis eindeutig zu beschreiben was fur beliebige Ableitungen nicht so ist weil eine auftretende Satzform etwa Nichtterminalsymbole mehrfach enthalten kann Im Bereich des Compilerbaus sind Rechtsableitungen bedeutsam weil fur eine dort wichtige Sprachklasse die LR k Sprachen eine effiziente Methode der Syntaxanalyse bekannt ist der wesentlich dieser Begriff zugrunde liegt Linksableitung BearbeitenAnalog zur Rechtsableitung spricht man von einer Linksableitung englisch leftmost derivation wenn immer das am weitesten links stehende Nichtterminalsymbol ersetzt wird Linksableitungen spielen eine Rolle bei der Syntaxanalyse von LL k Grammatiken da aber die ihrer grosseren Erzeugungsmachtigkeit wegen wichtigere Klasse der LR k Grammatiken auf Rechtsableitungen beruht insgesamt eine geringere Diese scheinbare Asymmetrie ist eine Folge der Konvention Eingabezeichenketten von links nach rechts zu lesen und zu verarbeiten Literatur BearbeitenAlfred V Aho Ravi Sethi Jeffrey D Ullman Compilers Principles Techniques and Tools Addison Wesley Series in Computer Science Addison Wesley Reading MA u a 1986 ISBN 0 201 10088 6 S 196 197 Arto K Salomaa Formale Sprachen Springer Verlag Berlin u a 1978 ISBN 3 540 09030 4 Seppo Sippu Eljas Soisalon Soininen Parsing Theory 2 Bande Springer Verlag Berlin u a 1988 ISBN 3 540 13720 3 Band 1 ISBN 3 540 51732 4 Band 2 EATCS Monographs on theoretical Computer Science 15 und 20 Einzelnachweise Bearbeiten Robert I McKay Nguyen Xuan Hoai Peter Alexander Whigham Yin Shan Michael O Neill Grammar based Genetic Programming a survey In Genetic Programming and Evolvable Machines Band 11 Nr 3 4 1 Mai 2010 ISSN 1389 2576 S 365 396 doi 10 1007 s10710 010 9109 y Fur beliebige zweistellige homogene Relationen auch ein Weg genannt Hans Rudolf Metz Relationen Wege Hullen PDF FH Giessen Friedberg Diskrete Mathematik Informatik SS 2010 Skript 16 2 Juni 2010 abgerufen am 16 April 2018 Im graphentheoretischen Sinn handelt es sich um einen gerichteten Weg ohne Kantengewichte Abgerufen von https de wikipedia org w index php title Ableitung Informatik amp oldid 234321620