Sprachtheorie. Formale Sprachen und Grammatiken, deren Klassifikation und der Zusammenhang mit Automaten

Größe: px
Ab Seite anzeigen:

Download "Sprachtheorie. Formale Sprachen und Grammatiken, deren Klassifikation und der Zusammenhang mit Automaten"

Transkript

1 Sprachtheorie Formale Sprachen und Grammatiken, deren Klassifikation und der Zusammenhang mit Automaten

2 Inhaltsübersicht und Literatur Formale Sprachen Definition Darstellungen: Backus-Naur-Form und Syntaxdiagramme Grammatik künstlicher Sprachen Grundbestandteile Chomsky-Hierarchie und Sprachklassen Reguläre (Typ 3) Sprachen Kontextfreie (Typ 2) Sprachen Kontextsensitive (Typ 1) Sprachen Allgemeine (Typ 0) Sprachen Literatur: Uwe Schöning: Theoretische Informatik - kurzgefaßt, Spektrum Akademischer Verlag 1995 Hopcroft/Motwani/Ullman: Introduction to Automata Theory, Languages, and Computation, 2nd edition, Addison-Wesley 2001 Theoretische Informatik I Formale Sprachen 2

3 Struktur natürlicher und künstlicher Sprachen Was macht eine Sprache aus : Wörter ( Vokabeln, siehe Duden, Dictionary ) Grammatikalische Regeln zum Satzbau (Syntax) Bedeutung (Semantik) Die Dreiteilung der Semiotik (Lehre von den Zeichen und ihrer Anordnung) in a) Syntax Regelwerk, eine endliche Menge von Regeln b) Semantik die objektiv gültige Bedeutung c) Pragmatik die subjektive Bedeutung für den Benutzer ist vorteilhaft für die mathematische Linguistik (Sprachwissenschaft). Anmerkungen: zu a) Zeichen bilden Wörter, Wörter bilden Sätze. zu b) Sätze können formal richtig aber semantisch falsch sein. Semantik ist schwer formulierbar. Beispiel: Übersetzungsfehler bei natürlichen Sprachen. Theoretische Informatik I Formale Sprachen 3

4 Künstliche Sprachen In der Informationstheorie kann keine subjektive Bedeutung (Pragmatik) zugelassen werden! Beispiel: Programmiersprachen. Die Semantik von PASCAL, C, COBOL etc. ist objektiv gültig für alle Benutzer. Semantische Probleme in künstlichen Sprachen (z.b. Programmiersprachen) zeigen sich, wenn zwar der Compilerlauf fehlerfrei ist, aber dennoch Laufzeitfehler (run time error) oder unsinnige Ergebnisse auftreten. Die Syntax einer Programmiersprache legt u.a. fest wo ein Strichpunkt zu stehen hat, wo Klammern zu setzen sind, wie ein arithmetischer Ausdruck abgearbeitet werden muß. Theoretische Informatik I Formale Sprachen 4

5 Formale Sprachen Definition: Sei X ein Alphabet von Zeichen und X* die Menge aller Wörter über X (die freie Halbgruppe über X bezüglich der Verkettung). Jede Teilmenge L X* heißt eine Sprache. Eine Teilmenge L X* heißt eine formale Sprache, wenn es eine Grammatik für L gibt, d.h. eine endliche Menge von Regeln, die genau die Wörter von L beschreiben. Eine mögliche exakte Definition für eine Grammatik werden wir später kennenlernen. Bemerkung: Sei X ein endliches Alphabet. Die Menge aller Sprachen über X ist überabzählbar. Die Menge aller formalen Sprachen über X ist abzählbar. Theoretische Informatik I Formale Sprachen 5

6 Sprachelemente verschiedener Sprachtypen Sprachtyp Grundmenge X Elemente der Sprache Formale Alphabet Wörter über X Sprachen Zeichenmenge Natürliche Menge von Wörtern Sätze über X (bzw. eine Folge Sprachen (Dudeninhalt) von Sätzen, ein Text ) Programmier- Menge von Grund- Programme über X sprachen symbolen (*) (*) Die Menge von Grundsymbolen besteht aus: den zugelassenen alphanumerischen Zeichen speziellen Schlüsselwörtern (keywords) wie 'PROGRAM', 'BEGIN'... Theoretische Informatik I Formale Sprachen 6

7 Darstellung formaler Sprachen Bei formalen Sprachen muß die Syntax formalen Regeln gehorchen, die Grammatik muß also formalisierbar und darstellbar sein. Gebräuchliche Methoden für die Darstellung von Sprachkonstrukten sind: BNF: Backus-Naur-Form Syntaxdiagramme Metasprachen Die Backus Naur Form wurde von J. Backus und P. Naur erfunden, die diesen Formalismus zuerst zur Darstellung von Konstrukten der Programmiersprache ALGOL 60 verwendeten. Zwei Varianten sind gebräuchlich : kompakte BNF (KBNF) erweiterte BNF (EBNF) Theoretische Informatik I Formale Sprachen 7

8 Terminale, Nichtterminale, Ersetzungsregeln Die BNF-Darstellung besteht aus Ersetzungsregeln (BNF-Regeln). Diese besitzen eine linke und eine rechte Seite, in denen Terminalzeichen (Zeichen des Alphabets) und Nichtterminalzeichen vorkommen. Nichtterminalzeichen sind Metazeichen: in der deutschen Sprache z.b.: Satz, Nebensatz, Subjekt, Prädikat, Objekt, Artikel usw. in der Programmiersprache PASCAL z.b.: Programm, Prozedurvereinbarung, Anweisung, Block, Typvereinbarung usw. Notationen in der BNF: Nichtterminale werden durch spitze Klammern <... > gekennzeichnet. Linke und rechte Seite einer Ersetzungsregel werden durch ::= getrennt. Theoretische Informatik I Formale Sprachen 8

9 Erweiterte BNF (EBNF) Gibt es zu einer linken Seite mehrere rechte Seiten, so werden diese durch getrennt, ohne die linke Seite nochmal anzuführen. Beispiel: <Bezeichner> soll aus höchstens 2 Zeichen bestehen, wobei an erster Stelle ein Element von {A,B} und an zweiter Stelle ein Element von {0,1, 2, 3} steht. <Bezeichner> ::= <Buchstabe> <Buchstabe><Ziffer> <Buchstabe> ::= A B <Ziffer> ::= Demnach sind folgende Bezeichner zulässig unzulässig B 3 A0 AA, 7A B3 B11 Theoretische Informatik I Formale Sprachen 9

10 Kompakte BNF (KBNF) Darstellungshilfsmittel: Beispiel: optionale Wiederholungsklammern obere Grenze untere Grenze * beliebig oft (0 bis n-mal) alternativ (oder) < number > ::= { + - } { 0 1 } {. { 0 1 } } 1 * * 1 0 zulässige Zahlen : 0, -1, +101, 1.0, , +000, unzulässige Zahlen : +-0,.0, -101., -..0 Theoretische Informatik I Formale Sprachen 10

11 Syntaxdiagramme Eine Programmiersprache wie PASCAL läßt sich vollständig in Form eines (großen und unübersichtlichen) Syntaxdiagramms beschreiben. Daher empfiehlt sich eine Zerlegung in übersichtliche Teildiagramme. Dabei ist eine Verzweigung als "oder", eine Aneinanderreihung als "gefolgt von" zu lesen. Zwei Symbolformen: Metasymbole: Metasymbol Sprachkomponenten: Sprachkomponente Theoretische Informatik I Formale Sprachen 11

12 Syntaxdiagramme: Beispiel 1 Beispiel (abstrakt) : A : ( B ) C D Der Begriff A ist definiert durch "(", gefolgt von B, gefolgt von C oder D, gefolgt von ")". Beispiel (konkret) : ziffer : Theoretische Informatik I Formale Sprachen 12

13 Syntaxdiagramme: Beispiel 2 zeichen : buchstabe ziffer sonderzeichen name : buchstabe buchstabe ziffer Theoretische Informatik I Formale Sprachen 13

14 Syntaxdiagramme: Beispiel 3 programm : programmkopf block. programmkopf : program programmname ( programmparameter ) ; programmparameter :, name Theoretische Informatik I Formale Sprachen 14

15 Grammatik künstlicher Sprachen (1) Das Regelwerk zum Satzaufbau, die Syntax, ist für natürliche Sprachen umfangreich und instabil, da sie laufend Änderungen unterworfen ist (neue Wörter, andere Schreibweise etc.). Einfacher ist dies bei Programmiersprachen, künstlichen Sprachen, deren Struktur präzise durch eine Grammatik definiert ist. Die 4 Bestandteile von sog. Satzgliederungssprachen sind: 1. Eine Menge von Terminalsymbolen 2. Eine Menge von Nichtterminalsymbolen 3. Eine Menge von grammatikalischen Regeln 4. Ein Startsymbol oder Axiom zu 1.) Eine Menge von Terminalsymbolen (oder Terminalen) Terminalsymbole sind Zeichen oder Zeichenfolgen, die in der Sprache Anwendung finden, das "Grundalphabet" der Sprache. Beispiel: In PASCAL: begin, end, :=, var, = Theoretische Informatik I Formale Sprachen 15

16 Grammatik künstlicher Sprachen (2) zu 2.) Eine Menge von Nichtterminalsymbolen (oder Nichtterminalen) Diese repräsentieren grammatikalische Konstrukte. Jedes Konstrukt läßt sich gemäß den Regeln der Grammatik in andere Konstrukte (Nichtterminale) oder in Terminale zerlegen. Beispiel: In PASCAL : Anweisung, Bezeichner, usw. zu 3.) Eine Menge von Grammatikregeln. Eine Regel legt fest, wie aus bereits bekannten Konstrukten neue Konstrukte entstehen. Beispiele: In der natürlichen deutschen Sprache: Verbindet man zwei Sätze A und B mit 'und', so ergibt dies wieder einen Satz. Regel in PASCAL: Wenn A eine Anweisung ist und B eine Bedingung, so ist die Zeichenfolge wieder eine Anweisung. repeat A until B Theoretische Informatik I Formale Sprachen 16

17 Formale Darstellung von Grammatikregeln Definition: Eine Grammatikregel ist ein Paar (2-Tupel) aus Wörtern bestehend aus Terminal- und/oder Nichtterminalsymbolen, geschrieben als (X 1 X 2... X n, Y 1 Y Y m ) oder X 1 X 2... X n Y 1 Y Y m Beispiele: (Nichtterminale sind durch < > - Zeichen gekennzeichnet.) a) Verknüpfen von Sätzen in der deutschen Sprache mittels "und": (<Satz>, <Satz> und <Satz>) oder <Satz> <Satz> und <Satz> b) PASCAL : (<Anweisung>, repeat <Anweisung> until <Bedingung>) oder <Anweisung> repeat <Anweisung> until <Bedingung> Theoretische Informatik I Formale Sprachen 17

18 Grammatik künstlicher Sprachen (3) zu 4.) Ein Startsymbol oder Axiom: Dies ist ein ausgewähltes Nichtterminal. Das Startsymbol ist das allgemeinste Sprachkonstrukt einer bestimmten Sprache. Beispiel: In Pascal: <Programm> Aus dem Startsymbol werden durch Anwenden der Grammatikregeln die einzelnen Wörter der Sprache abgeleitet. Theoretische Informatik I Formale Sprachen 18

19 Formale Definition einer Grammatik Definition: Eine (Chomsky-)Grammatik ist ein 4-Tupel G = ( N, T, P, S ) bestehend aus den folgenden Teilen: 1.) N ist eine endliche, nichtleere Menge von Zeichen, den Nichtterminalsymbolen, 2.) T ist eine endliche, nichtleere Menge von Zeichen, den Terminalsymbolen, mit N T =, 3.) P ist eine endliche Menge von Paaren (p,q) bzw. p q, wobei p und q Wörter aus Terminal- und Nichtterminalsymbolen sind: p, q (N T)*. Dabei muß p mindestens ein Nichtterminal enthalten. P ist das Produktions- oder Regelsystem. Die Elemente von P werden Produktionen, Ersetzungsregeln oder einfach Regeln genannt. 4.) S ist ein Element von N, das Startsymbol oder Axiom. Theoretische Informatik I Formale Sprachen 19

20 Chomsky-Grammatiken Grammatiken der eben definierten Form wurden 1959 vom amerikanischen Sprachwissenschaftler Noam Chomsky (geb. 1928) entwickelt, sie werden daher Chomsky-Grammatiken oder auch Satzgliederungssprachen (phrase structure languages) genannt, wegen der Aufteilung in die beiden Klassen Terminale und Nichtterminale. Es gibt verschiedene Typen oder Klassen von Sprachen, die durch Einschränken der erlaubten Grammatikregeln auf bestimmte Formen definiert werden. Theoretische Informatik I Formale Sprachen 20

21 Sprachklassen und Chomsky-Hierarchie CH-0: Menge der Sprachen, die durch (Chomsky-)Grammatiken (ohne weitere Einschränkung) erzeugt werden können: Allgemeine Sprachen (Typ 0 oder L0) genannt. CS : Menge der Sprachen, die durch kontextsensitive Grammatiken erzeugt werden können: Kontextsensitive Sprachen (Typ 1 oder L1) genannt. CF : Menge der Sprachen, die durch kontextfreie Grammatiken erzeugt werden können: Kontextfreie Sprachen (Typ 2 oder L2) genannt. RL bzw. LL oder Reg: Menge der Sprachen, die durch rechtslineare bzw. linkslineare Grammatiken erzeugt werden können: Reguläre Sprachen (Typ 3 oder L3) genannt. Diese Klassen stehen in folgender Beziehung zueinander: Chomsky-Hierarchie: L 3 L 2 L 1 L 0 Theoretische Informatik I Formale Sprachen 21

22 Sprachklassen und Automatenklassen Chomsky-Hierarchie unter Einbeziehung der verschiedenen Modelle erkennender Automaten : TM Sprachen, die von Turingmaschinen CH - 0 = TM = Auf akzeptiert werden. Auf Menge der aufzählbaren Sprachen. Ent Ent Menge der entscheidbaren Sprachen. NLBA Menge von Sprachen, die von nicht-determi- CS = NLBA nistischen linear beschränkten Automaten akzeptiert werden. CF = NDKA NDKA Sprachen von nicht-deterministischen Kellerautomaten Lin DKA DKA Sprachen determininistischer Kellerautomaten Lin Lineare Sprachen RL = LL = Reg = EA Reg Reguläre Sprachen EA Sprachen endlicher Automaten Theoretische Informatik I Formale Sprachen 22

23 Chomsky-Hierarchie Chomsky - Hierarchie in mengentheoretischer Darstellung : CH - 0 Ent CS CF Lin RL DKA Theoretische Informatik I Formale Sprachen 23

24 Beispiel für eine Grammatik Die im folgenden definierte Grammatik G 1 = ( N 1, T 1, P 1, S 1 ) beschreibt einen kleinen Ausschnitt der deutschen Sprache: N 1 = { <Satz>, <Subjekt>, <Prädikat>, <Objekt>, <Artikel>, <Substantiv> } T 1 = { die, Maus, Katze, jagt, beißt } S 1 = <Satz> P 1 = { (<Satz>, <Subjekt> <Prädikat> <Objekt>), (<Subjekt>, <Artikel> <Substantiv>), (<Objekt>, <Artikel> <Substantiv>), (<Prädikat>, jagt), (<Prädikat>, beißt), (<Artikel>, die), (<Substantiv>, Maus), (<Substantiv>, Katze) } Theoretische Informatik I Formale Sprachen 24

25 Ableitungsbaum Ein Wort der obigen Grammatik G 1 läßt sich durch einen Ableitungsbaum darstellen, z.b.: <Satz> <Subjekt> <Prädikat> <Objekt> <Artikel> <Substantiv> <Artikel> <Substantiv> die Katze jagt die Maus Theoretische Informatik I Formale Sprachen 25

26 Regeln zum Aufbau eines Ableitungsbaumes 1. Die Wurzel wird mit dem Startsymbol markiert. 2. Ein Knoten, der mit einem Nichtterminalsymbol X markiert ist, hat bei Anwendung der Regel X X 1 X 2... X n Söhne, die von links nach rechts mit X n 1, X 2,..., X n markiert werden. 3. Ein Knoten, der mit einem Terminalsymbol versehen ist, hat keinen weiteren Sohn. Die Folge der Blätter, gelesen von links nach rechts ergibt ein Wort (einen Satz) der Sprache. Bemerkung: Offensichtlich funktioniert diese Konstruktion nur für Regeln der Form X X 1 X 2... X, in n denen auf der linken Seite ein einziges Nicht-Terminal steht. Grammatiken, die nur solche Regeln enthalten, sind per definitionem (s.u.) genau die kontextfreien Grammatiken. Theoretische Informatik I Formale Sprachen 26

27 Ausführen einer Ableitung Frage: Wie gewinnt man aus einer Grammatik G = ( N, T, P, S ) die syntaktisch richtigen Wörter? Die Ableitungsvorschrift sei folgendermaßen definiert : Seien x (N T)* ein Wort aus Terminal- und Nichtterminalsymbolen, und (p,q) eine Regel aus der Produktionsmenge P von G, so daß p als Teilwort von x auftritt: x = x' p x" mit x', x" (N T)* Das Ergebnis der Anwendung von (p,q) auf x (im Kontext x'.. x") ist das Wort y = x' q x" das entsteht, indem man in x das Teilwort p durch das Wort q ersetzt. Man schreibt dann: x ==> y oder x y (falls die konkrete Regel uninteressant ist) (p,q) und sagt : x ist ableitbar nach y durch Anwendung der Regel (p, q). Theoretische Informatik I Formale Sprachen 27

28 Zu einer Grammatik gehörende Sprache Auf ein Wort x 0 können nacheinander mehrere Ableitungsschritte angewandt werden x 0 x 1, x 1 x 2,..., x n-1 x n (n > 1) Man nennt diese Folge von Ableitungen einfach eine Ableitung von x 0 nach x n oder sagt x 0 ist ableitbar nach x n bezüglich G und schreibt dafür: * x 0 ==> x G n Definition: Die von einer Grammatik G = ( N, T, P, S ) erzeugte Sprache L(G) ist die Menge aller Wörter, die aus dem Startsymbol S ableitbar sind und nur aus Terminalsymbolen bestehen: L(G) = { w T* S ==> w bezüglich G } Theoretische Informatik I Formale Sprachen 28

29 Beispiel 1 Beispiel für eine Ableitung : <Satz> <Subjekt> <Prädikat> <Objekt> <Artikel> <Substantiv> <Prädikat> <Objekt> <Artikel> Katze <Prädikat> <Objekt> <Artikel> Katze jagt <Objekt> <Artikel> Katze jagt <Artikel> <Substantiv>... die Katze jagt die Maus Die durch G 1 (s.o.) erzeugte Sprache ist : L(G 1 ) = { die Maus jagt die Katze, die Maus jagt die Maus, die Katze jagt die Katze, die Katze jagt die Maus, die Maus beißt die Katze, die Maus beißt die Maus, die Katze beißt die Katze, die Katze beißt die Maus } Theoretische Informatik I Formale Sprachen 29

30 Beispiel 2 Gegeben sei folgende Grammatik G 2 = ( N 2, T 2, P 2, S 2 ) mit N 2 = { S 2, A } T 2 = { a, b, c, d } P 2 = { (S 2, aabc), (A, aab), (aab, d) } Anwendung der Regeln : S 2 (S 2, aabc) aabc (aab, d) (A, aab) dc aaabbc (aab, d) aadbbc L (G 2 ) = { w T* w = a n d b n c, n > 0 } Theoretische Informatik I Formale Sprachen 30 (aab, d) (A, aab) adbc aaaabbbc

31 Rechts- und linkslineare Grammatiken Schreibweise: Im folgenden werden Terminale immer mit kleinen, Nichtterminale mit großen Buchstaben bezeichnet. Definition : Eine Grammatik G = ( N, T, P, S ) heißt rechtslinear, wenn alle Regeln die Form A a oder A a B haben. Sie heißt linkslinear, wenn alle Regeln die Form A a oder A Ba haben. Bei diesen Grammatiken wird also bei jeder Regelanwendung jeweils ein Nichtterminal durch ein Terminal oder durch ein Paar aus Terminal und Nichtterminal ersetzt. Theoretische Informatik I Formale Sprachen 31

32 Reguläre oder Typ-3-Sprachen Satz: Die Menge der Sprachen, die von rechtslinearen Grammatiken erzeugt werden, ist gleich der Menge der von linkslinearen Grammatiken erzeugten Sprachen. Bemerkung: Ein (konstruktiver) Beweis wird später gegeben. Definition: Eine Sprache heißt regulär oder vom Typ 3, wenn es eine linkslineare oder eine rechtslineare Grammatik gibt, die diese Sprache erzeugt. Theoretische Informatik I Formale Sprachen 32

33 Reguläre Mengen Notationen: Sei T eine endliche Menge, T* die Menge aller Wörter über T und A, B T* beliebige Teilmengen. A B = AoB = {ab T*; a A, b B} (Konkatenation) A 0 = {Λ}, A 1 = A, A 2 = AoA, A n = AoA n-1 A* = U A n (das von A erzeugte Untermonoid von T*) i = 0 Definition: Die Menge Reg der regulären Mengen über einer endlichen Menge T ist wie folgt definiert: 1. Reg (die leere Menge ist regulär) 2. { Λ } Reg (Λ = leeres Wort) 3. { x } Reg für alle x T 4. Sind P, Q Reg, so sind auch P Q, P o Q und P* Reg. Satz: Die Menge der regulären Sprachen über einer Menge T ist gleich der Menge der regulären Mengen über T. Theoretische Informatik I Formale Sprachen 33

34 Beispiel einer rechtslinearen Grammatik Gegeben sei die rechtslineare Grammatik G = ( N, T, P, S ) durch T = { a, b }, N = { A, S }, P = { (A, a), (S, ba), (S, as) } 1. Frage: Gehört das Wort x = a a b a zur Sprache L(G)? Wir suchen eine Reduktionsfolge für x: x = a a b a <= a a b A <= a a S <= a S <= S Also gilt x <= S und somit ist x L(G). * 2. Frage: Ist das Wort x = a b a a L(G)? Suche nach einer Reduktionsfolge, z.b. x = a b a a <= a b a A <= a b A A <= a S A <= S A oder x = a b a a <= A b a a <= A b A a <= A b A A <= A S A Alle Versuche führen nicht zu einer Reduktion zum Startsymbol S. Somit ist x = a b a a L(G). Theoretische Informatik I Formale Sprachen 34

35 Ein Ableitungsbaum der Beispielgrammatik Aufbau eines Ableitungsbaumes für x = a a b a durch Reduktion: 1. Schritt 2. Schritt S A A a a b a a a b a 3. Schritt S 4. Schritt S S S S A A a a b a a a b a Ein Wort x gehört genau dann zu L(G), wenn man einen Baum konstruieren kann, so daß von jedem Terminal von x genau ein Ast wegführt und alle Äste schließlich im Startsymbol S enden. Theoretische Informatik I Formale Sprachen 35

36 Die Sprache der Beispielgrammatik Erzeugen aller möglichen Ableitungen von S: Somit ist S => b A => b a S => a S => a b A => a b a => a S => a a S => a a b A => a a b a => a S => a a S => a a a S => a a a b A => a a a b a L(G) = { x x = a n b a, n N 0 } Falls so eine einfache, geschlossene Darstellung für alle Wörter der Sprache gefunden werden kann, ist dies natürlich auch die einfachste Methode, um für ein gegebenes Wort festzustellen, ob es zur Sprache gehört oder nicht. Theoretische Informatik I Formale Sprachen 36

37 Ableitungsbäume der Beispielgrammatik Entstehen des Syntaxbaumes bei der Ableitung von a) x = b a b) x = a b a c) x = a a b a a) S b) S c) S b A a S a S a b A a S a b A Durch die Regel S => as entstehen von links beliebig viele a's. Durch die Regeln S => b A und A => a entsteht die Endung ba. Wird die Regel S => ba sofort angewandt, entsteht lediglich das Wort ba (siehe a). a Theoretische Informatik I Formale Sprachen 37

38 Beispiel einer linkslinearen Grammatik (1) Gegeben sei die linkslineare Grammatik G = ( N, T, P, S ) durch T = { a, b }, N = { A, B, S } P = { ( A, a ), ( B, b ), ( A, A a ), ( B, A b ), ( S, B a ) } Erzeugen aller möglichen Ableitungen von S: S => B a ==> b a S => B a ==> A b a ==> a b a ==> A a b a ==> a a b a hier =>.... beliebig =>.... viele a's =>.... durch die Regel A => A a L(G) = { x x = a n b a, n N 0 } Theoretische Informatik I Formale Sprachen 38

39 Beispiel einer linkslinearen Grammatik (2) Einige Ableitungsbäume für diese linkslineare Grammatik : S S S B a B a B a b A b A b a A a A a Bei einer linkslinearen Grammatik wachsen der Syntaxbaum und das abgeleitete Wort von rechts, bei einer rechtslinearen Grammatik von links her. a Theoretische Informatik I Formale Sprachen 39

40 Äquivalenz von Grammatiken Definition : Zwei Grammatiken G 1 = (N 1, T, P 1, S 1 ) und G 2 = (N 2, T, P 2, S 2 ) heißen äquivalent, wenn sie die gleiche Sprache erzeugen, also L (G 1 ) = L (G 2 ) Beispiel: Die obigen beiden Beispiele einer rechtslinearen und einer linkslinearen Grammatik sind äquivalent. Wir hatten bereits den Satz formuliert (bisher ohne Beweis), daß die Menge der von rechtslinearen Grammatiken erzeugten Sprachen gleich der Menge der von linkslinearen Grammatiken erzeugten Sprachen ist. Wir zeigen diesen Satz indirekt, indem wir jetzt zeigen, daß jede dieser beiden Mengen von Sprachen genau die Menge der von endlichen Automaten erkannten Sprachen ist. Theoretische Informatik I Formale Sprachen 40

41 Der Zusammenhang zwischen rechtslinearen Grammatiken und endlichen Automaten (1) Satz: Zu jeder rechtslinearen Grammatik G gibt es einen endlichen Automaten A, so daß L(G) = L(A) ist und umgekehrt. Beweis: Wir geben im folgenden ein konstruktives Verfahren an, das die entsprechende Aussage informell beweist. Wir gehen dabei davon aus, daß es zu jeder Regel A b eine weitere Regel A bc mit einem Nichtterminal C gibt. Ist dies nicht der Fall, fügen wir einfach ein weiteres (überflüssiges) Nichtterminal C und die (überflüssige) Regel A bc zu der Grammatik hinzu. Theoretische Informatik I Formale Sprachen 41

42 Der Zusammenhang zwischen rechtslinearen Grammatiken und endlichen Automaten (2) Vorgehensweise: 1. Jedem Nichtterminal entspricht ein Knoten (Zustand) und jedem Zustand ein Nichtterminal. Der Anfangszustand entspricht dem Startsymbol. 2. Jede Regel A bc entspricht einer Kante vom Knoten A zum Knoten C mit der Bewertung b und umgekehrt. 3. Gibt es in der Grammatik zwei Regeln A b und A bc, so ist C ein Endzustand. Umgekehrt nehmen wir für jeden Endzustand C und jede Kante von A nach C mit der Bewertung b zusätzlich zu A bc auch noch die Regel A b in die Grammatik auf. rechtslineare Grammatik endlicher Automat T X N Z S z 0 (Anfangszustand) P f z Theoretische Informatik I Formale Sprachen 42

43 Zustandsdiagramm vs. Produktionsregeln Der Zusammenhang zwischen Zustandsdiagramm und Regeln: linkslineare Regeln rechtslineare Regeln b b A C A C (C,Ab) (A,bC) a (B,a) a B S B (S,aB) A b b S A (S,Ab) (A,b) C (A,bC) Theoretische Informatik I Formale Sprachen 43

44 Beispiel (1) Konstruktion einer rechtslinearen Grammatik zu einem endlichen Automaten A mit X = { a, b } und der Sprache L(A) = { x x = a n b a, n N 0 }. Zustandsdiagramm rechtslineare Grammatik a A b a T = { a, b } = X B C N = { A, B, C, S } = Z b a,b P leitet sich aus fz ab: a b S aa (S,aA) S S bb (S,bB) D A aa (A,aA) A bb (A,bB) a,b Bemerkung: B ac (B,aC) C und B ac sind überflüssig B a (B,a) (ebenso D und alle D enthaltenden Regeln) Theoretische Informatik I Formale Sprachen 44

45 Beispiel (2) Wir haben bereits eine einfachere, rechtslineare Grammatik kennengelernt, die die Sprache { x x = a n b a, n N 0 } erzeugt, als die eben aus dem endlichen Automaten hergeleitete, nämlich: N = { A, S }, P = { (A, a), (S, ba), (S, as) } Wie sieht der endliche Automat zu dieser Grammatik aus? a S b A a B b a, b C a,b Der Zustand B entsteht aus der künstlich hinzugefügten Regel A ab, der Zustand C ist zur Vervollständigung der Übergangsfunktion nötig ("überflüssige" Regeln A bc, B ac, B bc, C ac, C bc). Theoretische Informatik I Formale Sprachen 45

46 Der Zusammenhang zwischen linkslinearen Grammatiken und endlichen Automaten (1) Satz: Zu jeder linkslinearen Grammatik G gibt es einen endlichen Automaten A, so daß L(G) = L(A) ist und umgekehrt. Beweis: Wir geben im folgenden ein konstruktives Verfahren an, daß die entsprechende Aussage informell beweist. Das Verfahren zur Konstruktion der Grammatik aus dem endlichen Automaten setzt allerdings voraus, daß der endliche Automat nur einen einzigen Endzustand besitzt, und dass keine Kanten auf den Anfangszustand führen. (Bei der Konstruktion des Automaten aus der Grammatik entsteht automatisch ein solcher Automat.) Deswegen wollen wir zunächst zeigen, dass dies keine Einschränkung ist. Theoretische Informatik I Formale Sprachen 46

47 Eine Normalform für endliche Automaten Lemma: Jeder endliche Automat ist äquivalent zu einem endlichen Automaten mit nur einem Endzustand, und bei dem keine Kanten in den Anfangszustand führen. Beweis (konstruktiv): Entfernen der Kanten in den Anfangszustand: Nimm einen weiteren Zustand X hinzu. Alle Kanten, die zuvor in den Anfangszustand führten, werden so verändert, dass sie in den Zustand X führen. Zu jeder vom Anfangszustand ausgehenden Kante wird zusätzlich eine entsprechende von X ausgehende Kante eingefügt. Reduktion auf einen Endzustand: Füge einen neuen Zustand E hinzu und mache ihn zum einzigen Endzustand. Zu jeder Kante, die in einen der vorherigen Endzustände führte, wird zusätzlich eine entsprechende Kante in den Zustand E eingefügt. (Der neue Automat ist also auf jeden Fall nicht-deterministisch). Von E aus gehen alle Kanten in einen Fehler zustand, aus dem es kein Entrinnen gibt. Theoretische Informatik I Formale Sprachen 47

48 Der Zusammenhang zwischen linkslinearen Grammatiken und endlichen Automaten (2) Vorgehensweise: 1. Jedem Nichtterminal entspricht ein Knoten (Zustand), der nicht der Anfangszustand ist, und umgekehrt entspricht jedem Zustand mit Ausnahme des Anfangszustandes ein Nichtterminal. Das Startsymbol S entspricht dem (einzigen) Endzustand. 2. Jeder Regel C Ab entspricht eine Kante vom Knoten A zum Knoten C mit der Bewertung b und umgekehrt. 3. Jeder Regel B a entspricht eine Kante vom Anfangszustand zum Knoten B mit der Bewertung a und umgekehrt. Es führen keine Kanten auf den Anfangszustand. linkslineare Grammatik endlicher Automat T X N Z \ {z 0 } S Z E mit Z E = 1 P f z Theoretische Informatik I Formale Sprachen 48

49 Beispiel Konstruktion einer linkslinearen Grammatik zu einem endlichen Automaten A mit X = { a, b } und der Sprache L(A) = { x x = a n b a, n N 0 }. Zustandsdiagramm a b a A B S b a,b a b D a,b linkslineare Grammatik T = { a, b } = X N = { A, B, S } = Z \ { z 0 } P leitet sich aus f Z ab: A a (A,a) A Aa (A,Aa) B b (B,b) B Ab (B,Ab) S Ba (S,Ba) Theoretische Informatik I Formale Sprachen 49

50 Kontextfreie (Typ 2) Sprachen Definition : Eine Grammatik heißt vom Typ 2 oder kontextfrei (umgebungsunabhängig), wenn alle Regeln von der Form A ω, ω (N T)*, ω Λ sind. Eine Sprache heißt kontextfrei oder vom Typ 2, wenn es eine kontextfreie Grammatik gibt, die diese Sprache erzeugt. Die Einschränkung ω Λbesagt, daß ein Nichtterminal nicht durch das leere Wort Λ ersetzt werden darf. Der Begriff kontextfrei wird verwendet, da die Regel A ω immer angewendet werden kann, unabhängig von der Umgebung (dem Kontext) von A. Kommt also A in einem Wort ϕ A ψ vor, so ist immer ϕ A ψ => ϕ ω ψ, unabhängig von ϕ und ψ (ϕ und / oder ψ können auch leer sein). Theoretische Informatik I Formale Sprachen 50

51 Chomsky- und Greibach-Normalform Beim Beweis von Aussagen über kontextfreie Sprachen ist es häufig nützlich, mit einer Grammatik zu arbeiten, deren Regeln spezieller sind als in einer allgemeinen kontextfreien Grammatik. Definition: Eine Grammatik ist in Chomsky-Normalform, wenn alle Regeln die Form A BC oder A a haben. Eine Grammatik ist in Greibach-Normalform, wenn alle Regeln die Form A a B 1 B 2... B k, k > 0 haben. Satz: Sei L eine kontextfreie Sprache. Dann gibt es - eine Grammatik für L in Chomsky-Normalform, - eine Grammatik für L in Greibach-Normalform. Theoretische Informatik I Formale Sprachen 51

52 Beispiel: PASCAL Die Syntax der meisten Programmiersprachen kann durch kontextfreie Grammatiken beschrieben werden. Beispiel: Die PASCAL-Definition von Namen in EBNF <identifier> ::= <letter> <identifier><letter> <identifier><digit> ist in Form von Grammatikregeln wie folgt zu formulieren : <identifier> <identifier> <identifier> <letter> <identifier><letter> <identifier><digit> Bemerkung: Alle drei Regeln sind kontextfrei, aber nicht vom Typ 3. Theoretische Informatik I Formale Sprachen 52

53 Eine kontextfreie, nicht reguläre Sprache Wir wissen bereits, daß die Sprache L = { x x = a m b m, m N } über T = {a,b} nicht regulär ist, denn sie ist nicht die Sprache eines endlichen Automaten. Also kann es keine links- oder rechtslineare Grammatik für L geben. Das folgende kontextfreie Regelsystem erzeugt L: P : { (S,ab), (S,aSb) } Ableitungsbäume für diese Grammatik bauen sich von der Mitte her auf, z.b. für das Wort a 3 b 3 : S S S a a a b b b Theoretische Informatik I Formale Sprachen 53

54 Kontextfreie Sprachen und Automaten Die Beziehung zwischen kontextfreien Sprachen bzw. Grammatiken und Automaten, also die Frage, welche Automaten kontextfreien Sprachen entsprechen, behandelt der folgende Satz: Zu jeder kontextfreien Grammatik G gibt es einen nicht-deterministischen Kellerautomaten NDKA, so daß L (G) = L ( NDKA ) ist und umgekehrt. Bemerkung : Die Klasse der Sprachen von nichtdeterministischen Kellerautomaten ist echt größer als die Klasse der Sprachen von deterministischen Kellerautomaten. Diejenigen kontextfreien Sprachen, die von deterministischen Kellerautomaten akzeptiert werden, werden auch deterministische kontextfreie Sprachen genannt. Theoretische Informatik I Formale Sprachen 54

55 Lineare Sprachen Definition: Eine Grammatik G = ( N, T, P, S ) heißt linear, wenn alle Regeln die Form A a oder A x B y mit a T und x, y T* haben. Eine Sprache heißt linear, wenn es eine lineare Grammatik für diese Sprache gibt. Beispiel: Die Sprache L = { x x = a m b m, m N } ist linear. Satz: Seien Lin = {linearen Sprachen}, L3 = {regulären Sprachen} und L2 = {kontextfreien Sprachen}. Dann gilt: L3 Lin L2 Theoretische Informatik I Formale Sprachen 55

56 Inhärent mehrdeutige Sprachen Definition: Eine kontextfreie Grammatik G heißt mehrdeutig, wenn es ein Wort x L(G) gibt, das mehr als einen Ableitungsbaum hat. Eine Sprache heißt inhärent mehrdeutig, wenn jede sie erzeugende Grammatik mehrdeutig ist. Beispiel: T = { a, b }, N = {S}, P = {( S,a), (S,b), (S,SS) }, x = aba S S S S S S S S S S a b a a b a Satz: Die Sprache {a i b j c k ; i = j oder j = k} ist inhärent mehrdeutig. Theoretische Informatik I Formale Sprachen 56

57 Ein Unentscheidbarkeitssatz Satz : Die Frage, ob eine gegebene kontextfreie Grammatik eindeutig oder inhärent mehrdeutig ist, ist nicht entscheidbar. Aber: In praktischen Fällen kann man durch entsprechende Kriterien Mehrdeutigkeiten klären, um diese zu vermeiden. Theoretische Informatik I Formale Sprachen 57

58 Kontextsensitive (Typ 1) Sprachen Die wichtigste Einschränkung bei kontextfreien Sprachen ist, daß auf der linken Seite der Regeln nur ein Nichtterminal auftreten darf. Definition: Eine Grammatik heißt kontextsensitiv (umgebungsabhängig) oder vom Typ 1, wenn ihre Regeln alle von der Form ϕ ω sind mit ϕ, ω (N T)*, ϕ < ω. Eine Sprache heißt kontextsensitiv oder vom Typ 1, wenn es eine kontextsensitive Grammatik gibt, die diese Sprache erzeugt. Bei einer kontextsensitiven Grammatik wird irgendeine Kette von Terminalen und/oder Nichtterminalen durch eine andere solche Kette ersetzt, mit der einzigen Einschränkung, daß bei der Ableitung die Wörter nicht kürzer werden. Theoretische Informatik I Formale Sprachen 58

59 Äquivalente Definition von kontextsensitiv Die Begründung für die Bezeichnung kontextsensitiv ergibt sich aus: Satz : Eine Sprache ist genau dann kontextsensitiv, wenn es eine sie erzeugende Grammatik gibt, deren Regeln alle die Form ϕ 1 Aϕ 2 ϕ 1 ωϕ 2, ϕ 1, ϕ 2, ω (N T)*, ω Λ haben. (Dabei dürfen ϕ 1 und / oder ϕ 2 auch leer sein.) Hier besteht ein Unterschied zu den Ableitungs-/Produktionsregeln kontextfreier Sprachen der Form A ω : Eine Regel ϕ 1 Aϕ 2 ϕ 1 ωϕ 2 bedeutet, daß A nur dann durch ω ersetzt werden darf, wenn A in dem bestimmten Kontext ϕ 1.. ϕ 2 steht. Theoretische Informatik I Formale Sprachen 59

60 Eine nicht kontextfreie Sprache Satz: Die Sprache {a n b n c n ; n > 1} über {a,b,c} ist nicht kontextfrei. Der Beweis des Satzes folgt aus dem Pumping-Lemma für kontextfreie Sprachen: Sei L eine kontextfreie Sprache. Dann gibt es eine Konstante n, so daß sich jedes Wort z L der Länge z > n schreiben läßt als z = uvwxy, vx > 1, und so daß für alle i > 0 auch uv i wx i y L. Die Sprache L = {a n b n c n ; n > 1} wird erzeugt von der Grammatik mit folgenden Regeln: S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc Dies ist eine kontextsensitive Grammatik. Theoretische Informatik I Formale Sprachen 60

61 Kontextsensitive Sprachen und Automaten Satz: Zu jeder kontextsensitiven Grammatik G gibt es einen nicht-deterministischen, linear beschränkten Automaten LBA, so daß L (G) = L ( LBA ) ist und umgekehrt. LBA-Problem: Es ist unbekannt, ob es zu jedem nicht-deterministischen, linear beschränkten Automaten einen deterministischen, linear beschränkten Automaten gibt, der die gleiche Sprache akzeptiert. Theoretische Informatik I Formale Sprachen 61

62 Allgemeine (Typ 0) Sprachen Ausgehend vom Typ 3 unterlag jedes Regelsystem immer weniger Beschränkungen. Der Typ 0 ist der allgemeinste Fall der Satzgliederungssprachen, in denen die Regeln keinerlei Beschränkungen mehr unterliegen. Definition : Jede Satzgliederungssprache L(G) ist vom Typ 0. Die Regeln der Grammatik G ϕ ψ, ϕ, ψ (N T)* unterliegen keinerlei Beschränkungen. Bei den Typ-1-Sprachen unterlagen die Regeln der Grammatik noch der Beschränkung ϕ < ψ. Theoretische Informatik I Formale Sprachen 62

63 Typ-0-Sprachen und Automaten Satz : Zu jeder Grammatik G vom Typ 0 gibt es eine Turingmaschine TM, so daß L(G) = L(TM) ist und umgekehrt. D.h. jede Regel läßt sich auf einer Turingmaschine ausführen. Umgekehrt kann jede Veränderung der Bandbeschriftung einer Turingmaschine durch eine Grammatikregel beschrieben werden. Theoretische Informatik I Formale Sprachen 63

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Formale Sprachen Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Inhaltsübersicht und Literatur Formale Sprachen: Definition und Darstellungen Grammatiken für formale Sprachen

Mehr

(Prüfungs-)Aufgaben zu formale Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen (Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),

Mehr

Alphabet, formale Sprache

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

Mehr

Formale Grundlagen der Wirtschaftsinformatik

Formale Grundlagen der Wirtschaftsinformatik Formale Grundlagen der Wirtschaftsinformatik Nikolaj Popov Research Institute for Symbolic Computation popov@risc.uni-linz.ac.at Sprachen und Grammatiken Teil II Sprache Definition: Ein Alphabet Σ ist

Mehr

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) 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,

Mehr

Kapitel IV Formale Sprachen und Grammatiken

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

Mehr

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

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

Mehr

Syntax von Programmiersprachen

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

Mehr

Syntax von Programmiersprachen

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

Mehr

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 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,

Mehr

6 Kontextfreie Grammatiken

6 Kontextfreie Grammatiken 6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

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

Mehr

Grundbegriffe. Grammatiken

Grundbegriffe. Grammatiken Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte

Mehr

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

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

Mehr

Sprachen sind durch folgenden Aufbau gekennzeichnet:

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

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS

Mehr

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

Mehr

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

Syntax von Programmiersprachen

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

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.5 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibung des Aufbaus von Sprachen Mathematische Mengennotation Beschreibung durch Eigenschaften

Mehr

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

7. Syntax: Grammatiken, EBNF

7. Syntax: Grammatiken, EBNF 7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik

Mehr

Ein Fragment von Pascal

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

Mehr

Informatik III - WS07/08

Informatik III - WS07/08 Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition

Mehr

Automatentheorie und formale Sprachen

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

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

I.5. Kontextfreie Sprachen

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

Mehr

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.

Mehr

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Automaten und formale Sprachen Klausurvorbereitung

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

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse

Mehr

Abschnitt 5. Grammatiken

Abschnitt 5. Grammatiken Abschnitt 5 Sven Büchel Computerlinguistik I: Übung 148 / 163 Definition Formale Grammatik Eine formale Grammatik G ist eine 4-Tupel G =(N,T,P,S) mit einem Alphabet von Nicht-Terminalsymbolen N einem Alphabet

Mehr

Das Halteproblem für Turingmaschinen

Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

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

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Einführung in die Computerlinguistik. Chomskyhierarchie. Dozentin: Wiebke Petersen Wiebke Petersen Einführung CL (SoSe 2010) 1

Einführung in die Computerlinguistik. Chomskyhierarchie. Dozentin: Wiebke Petersen Wiebke Petersen Einführung CL (SoSe 2010) 1 Einführung in die Computerlinguistik Chomskyhierarchie Dozentin: Wiebke Petersen 1.7.2010 Wiebke Petersen Einführung CL (SoSe 2010) 1 Wiederholung: Formale Grammatik Denition Eine formale Grammatik ist

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 7 Vorlesung Theoretische Grundlagen der Informatik im W 16/17 Ausgabe 17. Januar 2017 Abgabe 31. Januar 2017, 11:00 Uhr (im

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2017 20.04.2017 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Organisatorisches Literatur Motivation und Inhalt Kurzer

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

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

Mehr

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt

Mehr

4.2.4 Reguläre Grammatiken

4.2.4 Reguläre Grammatiken 4.2.4 Reguläre Grammatiken Eine reguläre Grammatik ist eine kontextfreie Grammatik, deren Produktionsregeln weiter eingeschränkt sind Linksreguläre Grammatik: A w P gilt: w = ε oder w = Ba mit a T und

Mehr

2.2 Syntax, Semantik und Simulation

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?

Mehr

DisMod-Repetitorium Tag 4

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

Mehr

Theoretische Informatik Testvorbereitung Moritz Resl

Theoretische Informatik Testvorbereitung Moritz Resl Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen

Mehr

Vorlesung Theoretische Informatik (Info III)

Vorlesung Theoretische Informatik (Info III) 1 Vorlesung Theoretische Informatik (Info III) Prof. Dr. Dorothea Wagner Dipl.-Math. Martin Holzer 22. Januar 2008 Einleitung Motivation 2 Thema heute Kontextfreie Grammatiken: Lemma von Ogden Eigenschaften

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik . Übungsblatt 6. VU Theoretische Informatik und Logik 25. September 23 Aufgabe Sind folgende Aussagen korrekt? Begründen Sie jeweils Ihre Antwort. a) Für jede Sprache L gilt: L < L (wobei A die Anzahl

Mehr

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 7 Vorlesung Theoretische Grundlagen der Informatik im W 16/17 Ausgabe 17. Januar 2017 Abgabe 31. Januar 2017, 11:00 Uhr (im

Mehr

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Kapitel 2: Methoden zur Beschreibung von Syntax

Kapitel 2: Methoden zur Beschreibung von Syntax Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 2: Methoden zur Beschreibung von Syntax Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

Mehr

Theoretische Grundlagen der Informatik

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

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Prof. Meer, Dr. Gengler Aufgabenblatt 7 Besprechung in KW 48 / Abgabe in KW 49 Heften Sie unbedingt alle Blätter Ihrer Lösung zusammen und geben Sie oben auf dem ersten Blatt Ihren

Mehr

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN Universität Heidelberg / Institut für Informatik 7. Juli 24 Prof. Dr. Klaus Ambos-Spies Nadine Losert Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 2 LÖSUNGEN Aufgabe Verwenden

Mehr

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 23.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme Wiederholung Mit Grammatiken können wir Sprachen beschreiben und sie grob in Typen unterteilen: FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme Formale

Mehr

6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken

6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken 6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken Mod-6.1 Kontextfreie Grammatik (KFG): formaler Kalkül, Ersetzungssystem; definiert Sprache als Menge von Sätzen; jeder Satz ist eine Folge von

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

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

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

Deterministischer Kellerautomat (DPDA)

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,δ,

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch

Mehr

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften Formalismen für RE Formale rundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de Satz Zu jeder regulären Sprache L gibt es einen DFA A mit L(A) =

Mehr

Grundlagen der Informatik II

Grundlagen der Informatik II Grundlagen der Informatik II Dr.-Ing. Sven Hellbach S. Hellbach Grundlagen der Informatik II Abbildungen entnommen aus: Dirk W. Hoffmann: Theoretische Informatik; Hanser Verlag 2011, ISBN: 978-3-446-42854-6

Mehr

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.11.2005 5. Vorlesung 1 Überblick: Kontextfreie Sprachen Formale Grammatik Einführung, Beispiele Formale

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann. Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden

Mehr

Formale Sprachen Jörg Roth Formale Sprachen

Formale Sprachen Jörg Roth Formale Sprachen Formale Sprachen Jörg Roth 196 3 Formale Sprachen Wir haben uns bisher nur mit einem Typ formaler Sprachen besonders intensiv beschäftigt den regulären Sprachen. Wir haben aber auch erkannt, dass reguläre

Mehr

Mehrdeutige Grammatiken

Mehrdeutige Grammatiken Mehrdeutige Grammatiken Wir haben gesehen, dass es auch mehr als eine Linksableitung, d.h. mehr als einen Syntaxbaum geben kann, um das selbe Terminalwort zu erzeugen. Eine Grammatik, die für mindestens

Mehr

Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; inführung rsetzungsverfahren:

Mehr

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

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

Mehr

Grundlagen der Informatik II

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

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 4.2.2011 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

1 Varianten von Turingmaschinen

1 Varianten von Turingmaschinen 1 Varianten von Turingmaschinen Es gibt weitere Definitionen für Turingmaschinen. Diese haben sich aber alle als äquivalent herausgestellt. Ein wiederkehrendes Element der Vorlesung: Äquivalenz von Formalismen

Mehr

5. Die syntaktische Analyse

5. Die syntaktische Analyse mittels sog. Parser Input: Folge von Token (Symbolen), geliefert vom Scanner/Sieber Aufgabe: Teilfolgen zusammenfassen zu größeren syntaktischen Einheiten Ausdrücke, Anweisungen(-folgen), Deklarationen,

Mehr

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009 Theoretische Informatik Rainer Schrader Institut für Informatik 9. Juli 2009 1 / 41 2 / 41 Gliederung die Chomsky-Hierarchie Typ 0- Typ 3- Typ 1- Die Programmierung eines Rechners in einer höheren Programmiersprache

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 02.02.2012 INSTITUT FÜR THEORETISCHE 0 KIT 06.02.2012 Universität des Andrea Landes Schumm Baden-Württemberg - Theoretische und Grundlagen der Informatik

Mehr

Übersicht: Inhalt und Ziele. Kapitel 2: Methoden zur Beschreibung von Syntax. Aufbau von Programmen. Syntax von Programmiersprachen

Übersicht: Inhalt und Ziele. Kapitel 2: Methoden zur Beschreibung von Syntax. Aufbau von Programmen. Syntax von Programmiersprachen Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Übersicht: Inhalt und Ziele Zwei Methoden zur Beschreibung (Definition) der Syntax von Programmiersprachen Backus-Naur-Form

Mehr

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer. Proseminar TI: Kellerautomaten Vortrag: 10.11.2015 Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer. 1 Motivation Wir kennen bereits die Chomsky-Hierarchie. Sie klassiziert formale

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik 1 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 2 Kontextfreie Grammatiken Definition: Eine Grammatik G

Mehr