Der Hund jagt die Katze. Theoretische Informatik Satz S P O formale Sprachen Theoretische Informatik Grammatik Satz S P O Satzzeichen Artikel Substantiv Verb Der Hund jagt die Katze.
Regeln terminale Zeichen nicht terminale Zeichen formale Sprachen Theoretische Informatik Grammatik Regeln Satz S P O “Satzzeichen“ nicht terminale Zeichen terminale Zeichen P “Verb“ S “Artikel“ “Substantiv “ O “Artikel“ “Substantiv “ “Satzzeichen“ . , ! ; “Artikel“ Der | die “Substantiv“ Hund | Katze “Verb“ jagt
Ableitung eines Satzes formale Sprachen Theoretische Informatik Grammatik Ableitung eines Satzes Satz S P O “Satzzeichen“ “Artikel“ “Substantiv “ P O “Satzzeichen“ “Artikel“ “Substantiv “ “Verb“ O “Satzzeichen“ “Artikel“ “Substantiv “ “Verb““Artikel“ “Substantiv “ “Satzzeichen“ Der “Substantiv “ “Verb““Artikel“ “Substantiv “ “Satzzeichen“ Der Hund “Verb““Artikel“ “Substantiv “ “Satzzeichen“ Der Hund jagt “Artikel“ “Substantiv “ “Satzzeichen“ Der Hund jagt die “Substantiv “ “Satzzeichen“ Der Hund jagt die Katze “Satzzeichen“ Der Hund jagt die Katze .
Theoretische Informatik formale Sprachen Theoretische Informatik Grammatik weitere Ableitungen die Katze jagt Der Hund ! * Satz Der Hund jagt Der Hund ; * Satz
Grammatik Theoretische Informatik Eine Grammatik G besteht aus : formale Sprachen Theoretische Informatik Definition Grammatik Eine Grammatik G besteht aus : = (VN , VT, P, S) - einem Alphabet VN der nichtterminalen Zeichen - einem Alphabet VT der terminalen Zeichen - einer Menge von Produktionsregeln P - einem Startsymbol S VN VN und VT sind endliche, nichtleere Mengen mit VN VT = Ø Alle Regeln haben die Form mit (VN VT)+ und (VN VT)*
VT = { Der, die, Hund, Katze, jagt, . , ; , ! , , } formale Sprachen Theoretische Informatik Beispiel G1 = (VN , VT, P, S) mit VN = { Satz, S, P, O, Artikel, Substantiv, Verb, Satzzeichen } VT = { Der, die, Hund, Katze, jagt, . , ; , ! , , } P = { Satz -> S P O Satzzeichen, ... , Verb -> jagt } S = Satz VN
Theoretische Informatik formale Sprachen Theoretische Informatik Beispiel Bezeichner in C++ : Bezeichner setzen sich aus Buchstaben, Ziffern und dem Unterstrich _ zusammen. Sie beginnen mit einem Buchstaben oder dem Unterstrich.
Theoretische Informatik formale Sprachen Theoretische Informatik Beispiel G2 = (VN , VT, P, S) mit VN = { Bezeichner, BezRest, Buchstabe, Ziffer } VT = { A, B, ..., Z, a, b, ..., z, _, 0, 1, ..., 9 } P = { Bezeichner -> Buchstabe | Buchstabe BezRest | _ | _ BezRest BezRest -> Buchstabe | Buchstabe BezRest | Ziffer | Ziffer BezRest Buchstabe -> A | B | ... | Z | a | b | ... | z Ziffer -> 0 | 1 | ... | 9 } S = Bezeichner VN
Ableitung eines Bezeichners formale Sprachen Theoretische Informatik Beispiel Ableitung eines Bezeichners Bezeichner Buchstabe BezRest Buchstabe Buchstabe BezRest Buchstabe Buchstabe Buchstabe BezRest Buchstabe Buchstabe Buchstabe _ BezRest Buchstabe Buchstabe Buchstabe _ Ziffer BezRest Buchstabe Buchstabe Buchstabe _ Ziffer Ziffer A Buchstabe Buchstabe _ Ziffer Ziffer Ab Buchstabe _ Ziffer Ziffer Abi_ Ziffer Ziffer Abi_0 Ziffer Abi_07
weitere gültige Bezeichner formale Sprachen Theoretische Informatik Beispiel weitere gültige Bezeichner SCHLANGE * Bezeichner datei_zeiger * Bezeichner _1234 * Bezeichner
Theoretische Informatik formale Sprachen Theoretische Informatik Beispiel 1234 ist kein gültiger Bezeichner Es gibt in P keine Regel Bezeichner Ziffer BezRest und aus Buchstabe kann keine Ziffer abgeleitet werden. Deshalb kann 1234 nicht mit Hilfe der Regeln aus P von dem Startsymbol Bezeichner abgeleitet werden.
Theoretische Informatik formale Sprachen Theoretische Informatik Beispiel G3 = (VN , VT, P, S) mit VN = { S, A, B } VT = { 0, 1 } P = { S -> | 0A A -> 0A | B B -> 1B | 1 } Startsymbol S VN
Ableitung eines Wortes formale Sprachen Theoretische Informatik Beispiel Ableitung eines Wortes S 0A 00A 000A 0000A 0000B 00001B 000011B 0000111
weitere gültige Wörter formale Sprachen Theoretische Informatik Beispiel weitere gültige Wörter * S 01 * S 0000000000011 * S Es können neben alle Wörter aus VT* abgeleitet werden, bei denen einer Anzahl von 0-en, mindestens eine 0, eine Anzahl von 1-en, mindestens eine 1, folgen.
Theoretische Informatik formale Sprachen Theoretische Informatik Beispiel 10 ist kein gültiges Wort Es gibt in P keine Regeln S 10 1A 1S Deshalb kann 10 nicht mit Hilfe der Regeln aus P von dem Startsymbol S abgeleitet werden.
Theoretische Informatik formale Sprachen Theoretische Informatik Definition Erzeugte Sprache Sei G = (VN , VT, P, S) eine Grammatik. Die von G erzeugte Sprache L(G) ist die Menge aller Wörter aus VT*, die mit Hilfe der Produktionsregeln von dem Startsymbol S in endlich vielen Schritten abgleitet werden können. L(G) = { x VT* | S } x *
Theoretische Informatik formale Sprachen Theoretische Informatik Beispiel L(G3) = { x VT* | x = vw mit v = 0+ und w = 1+ } { } = 0+1+ | = Die Menge aller Wörter aus VT*, bei denen einer Anzahl von 0-en, mindestens eine 0, eine Anzahl von 1-en, mindestens eine 1, folgen, vereinigt mit dem leeren Wort .