Teil V: Formale Sprachen 1. Sprachen und Grammatiken 2. Endliche Automaten

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

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

Kapitel IV Formale Sprachen und Grammatiken

Mehrdeutige Grammatiken

Alphabet, formale Sprache

Syntax von Programmiersprachen

Syntax von Programmiersprachen

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

6 Kontextfreie Grammatiken

Syntax von Programmiersprachen

Formale Grundlagen der Wirtschaftsinformatik

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

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

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

Endliche Automaten. aus. Abbildung 1: Modell eines einfachen Lichtschalters

I.5. Kontextfreie Sprachen

Der deterministische, endliche Automat. Formale Grundlagen der Informatik 1 Kapitel 3 Mehr zu regulären Sprachen

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

Kapitel 2: Methoden zur Beschreibung von Syntax

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

Informatik III - WS07/08

Ein Fragment von Pascal

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Mehrdeutige Grammatiken

Kapitel 2. Methoden zur Beschreibung von Syntax

Klammersprache Definiere

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

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Einführung in die Computerlinguistik

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

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

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

(Prüfungs-)Aufgaben zu formale Sprachen

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

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

Die Chomsky Hierarchie

Teil V: Formale Sprachen

Klausur zur Vorlesung Grundbegriffe der Informatik 14. September 2015 Lösungsvorschläge

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

Formale Sprachen. Script, Kapitel 4. Grammatiken

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

7. Syntax: Grammatiken, EBNF

3 Syntax von Programmiersprachen

2.4 Kontextsensitive und Typ 0-Sprachen

Automaten und formale Sprachen Klausurvorbereitung

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

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

Grundbegriffe der Informatik Tutorium 33

Das Halteproblem für Turingmaschinen

3 Syntax von Programmiersprachen

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

Theoretische Grundlagen der Informatik

Einführung in die Informatik. Programming Languages

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

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

Grundlagen der Theoretischen Informatik

Einführung in die Informatik. Programming Languages

Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen

Daten und Algorithmen

23. Kontextsensitive Sprachen

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

Theoretische Grundlagen der Informatik

Automatentheorie und formale Sprachen

Berechenbarkeitstheorie 1. Vorlesung

3.1 Reservierte Wörter

Rekursiv aufzählbare Sprachen

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 2. März 2016

Syntax von Programmiersprachen

Formale Sprachen, Grammatiken

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Automaten und Formale Sprachen 4. Vorlesung

1 Formale Sprachen, reguläre und kontextfreie Grammatiken

Kontextfreie Grammatiken

Abschnitt 4: Daten und Algorithmen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Einführung in die Theoretische Informatik

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

Die Chomsky Hierarchie

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

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

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

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Grundbegriffe. Grammatiken

Algorithmen und Formale Sprachen

Induktive Definition

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

Grundlagen der Theoretischen Informatik

Formale Sprachen Jörg Roth Formale Sprachen

Musterlösung zur Nachklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Transkript:

Formale Sprachen

Teil V: Formale Sprachen 1. Sprachen und Grammatiken 2. Endliche Automaten Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 2 (von 50)

1. Sprachen und Grammatiken Formale Sprachen Formale Sprachen vs. gesprochene Sprachen Grammatiken Die Sequenz Typen-Einteilung für Grammatiken nach N-Chomsky Chomsky-Hierarchie und Programmiersprachen Chomsky-Normalform (CNF) für Typ 2 Sprachen Reguläre Ausdrücke Alternative Darstellung: BNF/EBNF Syntaxdiagramme Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 3 (von 50)

Formale Sprachen Ziele: Formulierung von Algorithmen in eindeutiger und für Computer verständlicher Weise. Mittel: Formalismen, die gewisse Ähnlichkeiten mit gesprochenen Sprachen haen, sich aer in Bezug auf Zweckmässigkeit und Eindeutigkeit von gesprochenen Sprachen agrenzen Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 4 (von 50)

Formale Sprachen (1) Gesprochene Sprache hat u. a. Formalen Aufau (Grammatik, d.h. Regeln) Bedeutung (Semantik) auch ei formalen Sprachen kleine grammatisch korrekte Unterschiede können zu großen Bedeutungsunterschieden führen; auch jenseits von Gegenteiligkeit Bsp.: Der Weg ist das Ziel. Weg ist das Ziel. auch in formalen Sprachen möglich Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 5 (von 50)

Formale Sprachen (2) Dassele Wort, d. h. diesele Buchstaenfolge kann in verschiedenen gesprochenen Sprachen vorkommen und dann verschiedene Bedeutungen haen m i n d e r deutsch englisch weniger Aufpasser Auch in verschiedenen formalen Sprachen zulässig. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 6 (von 50)

Formale Sprachen vs. gesprochene Sprachen Zeichen aus Alphaet Wörter Ausdrücke, Anweisungen, Wörter, (Sätze) Buchstaen aus Alphaet Wörter Sätze Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 7 (von 50)

Grammatiken Um mit Sprachen, die im Allgemeinen unendliche Ojekte sind, algorithmisch umgehen zu können, enötigen wir endliche Beschreiungsmöglichkeiten für Sprachen. Dazu dienen sowohl Grammatiken als auch Automaten Grammatik Syntax Synthetische Sicht Analytische Sicht Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 8 (von 50)

Grammatiken (1) NP = Nominalphrase VP = Veralphrase N = Nomen A = Artikel PP = Präpositionalphrase V = Ver P = Präposition Satz NP VP NP NP PP NP N NP A N VP V VP V NP VP VP PP PP P NP P P P N N N N mit in auf Hans Frau Fernglas Park V V A A A A sieht geht der die das einem Syntaxaum zu Hans sieht die Frau mit einem Fernglas 1) Satz 2) Satz Mehrdeutige Grammatik VP VP NP PP NP VP PP NP NP NP NP NP N V A N P A N N V A N P A N (Hans) (sieht) (die Frau) (mit einem Fernglas) (Hans) (sieht die Frau) (mit einem Fernglas) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 9 (von 50)

Grammatiken (2) Eine Grammatik wird spezifiziert durch 4 Angaen: G = (V, Σ, P, S) V = endliche Menge der Varialen Σ = endliche Menge der Terminalzeichen S V = die Startvariale P = endliche Menge der Regeln (oder Produktionen) auch ülich: (V, A, P, S), (N, T, P, S), (S N, S T, P, w S ) Es gilt: V Σ = Regeln Produktionsregeln haen die Form: linke Seite rechte Seite linke und rechte Seite können aus Varialen (= Nichtterminalzeichen) und Terminalzeichen zusammengesetzt sein Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 10 (von 50)

Grammatiken (3) Beispiel: V = { S } Σ = { a, } lies: S erzeugt as oder aus S folgt as Regeln 1) S as 2) S a S a S as aa = a²² S as aas aaa = a³³ d. h. Bei dieser Grammatik sind aleitar alle Wörter der Form a n n, n 1 Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 11 (von 50)

Grammatiken (4) Definition: Eine endliche, nicht-leere Menge von Terminalzeichen nennt man auch Alphaet. Die Elemente eines Alphaets heißen Symole. Falls Σ ein Alphaet ist, so ezeichnet Σ* die Menge aller Worte estehend aus Buchstaen Σ. leeres Wort z. B.: Σ * = { ε, 0, 1, 00, 01, 10, 11, 000, 001,... } Σ + = Σ * \ { ε } (Buchstaen, Zeichen, Token) ( endliche Folgen) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 12 (von 50)

Grammatiken (5) Beispiel: A = { a,,, z }; B = { 0, 1 } C = { for, end, egin, if, then, else, } (endliche Folgen) Durch Hintereinanderschalten entstehen Wörter acad A*; 01101 B*; egin if end C*; Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 13 (von 50)

Grammatiken (6) Die Länge eines Wortes ist die Anzahl seiner Buchstaen. acda Σ*, mit acda = 6 ε = 0 Für w Σ* ezeichnet w die Länge von w. Es gilt: w1 w2 = w1 + w2 Sei w Σ* ein Wort, n N Dann ist w n = ww w ein Wort der Länge w n = n w n-mal Sei Σ ein Alphaet, dann heißt L Σ* eine (formale) Sprache Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 14 (von 50)

Grammatiken (7) Prolem: Sprachen enthalten i. a. unendlich viele Wörter Ziel: Endlichen Formalismus angeen, der in der Lage ist, unendlich viele Sprachen zu ezeichnen. Beispiel: Grammatik aus vorangegangenem Beispiel war kontextfrei, d. h. auf der linken Seite der Regeln steht nur eine Variale. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 15 (von 50)

Grammatiken (8) kontextsensitive Beispiel für eine nicht-kontextfreie Grammatik V = { S, B } Σ = { a,, c } S: Startvariale Regeln: 1) S asbc 2) S ac 3) cb Bc 4) B Eine mögliche Aleitung eines Wortes Σ* S asbc aacbc aabcc aacc = a²²c² 1) 2) 3) 4) Bei dieser Grammatik sind aleitar: alle Wörter der Form a n n c n, n 1 Σ* Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 16 (von 50)

Grammatiken (9) Beispiel Für n = 3 S a S B c aa S B c B c aaac B c B c aaa B cc B c aaa B c B cc aaa B B ccc aaa B ccc aaaccc Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 17 (von 50)

Grammatiken (10) Definition: Die von einer Grammatik G = (V, Σ, P, S) erzeugte (definierte) Sprache ist L(G) := { w Σ* S. w } w 1 w 2 edeutet eine Aleitung: vgl. Bsp. von oen: L(G) = { a n n c n n 1 } Das Wort w 1 enthält die linke Seite einer Grammatik-Regel. Diese linke Seite wurde in w 2 durch die rechte Seite ersetzt. Eine Aleitung endet, wenn w nur noch Terminalsymole enthält. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 18 (von 50)

Die Sequenz S w edeutet, dass es eine Aleitung, d. h. eine endliche Folge von Regelanwendungen git, die von S auf w führt. Diese Folge ist nicht zwingend und es kann passieren, dass estimmte ( schlechte) Folgen zu gar keiner Sequenz aus Σ* führen. Beispiel: V = { S, B }, Σ = { a,, c } S asbc S ac cb Bc B as ab d. i. keine Sequenz nur aus Terminalsymolen S asbc abbc [stop] Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 19 (von 50)

Typen Einteilung für Grammatiken nach N-Chomsky Typ 0: keine Einschränkungen Typ 1: (oder kontextsensitiv) Für alle Regeln w 1 w 2 der Grammatik muss gelten: w 1 w 2 Typ 2: (oder kontextfrei) für alle Regeln w 1 w 2 der Grammatik gilt: w 1 V Typ 3: (oder regulär) wie Typ 2, zusätzlich muss w 2 eine der eiden Bauarten haen w 2 Σ oder w 2 esteht aus Terminal gefolgt von Varialer Menge aller Sprachen Typ 0 entscheidar Typ 1 Typ 2 Typ 3 Hinweis: Eine Sprache L Σ* ist Typ i { 0, 1, 2, 3 }, falls es Grammatik G vom Typ i git mit L = L(G) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 20 (von 50)

Typen Einteilung für Grammatiken nach N-Chomsky (1) Eine Sprache L ist vom Typ 0, 1, 2, oder 3, wenn es eine Grammatik G von entsprechendem Typ git, die die Sprache festlegt, also L = L(G). Also: Sprachtypen sind gleich Grammatiktypen. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 21 (von 50)

Typen Einteilung für Grammatiken nach N-Chomsky (2) Beispiel für reguläre Sprache (Typ 3) V = { S, A, B } Σ = { a, } P = { 1. S S, 2. S aa, 3. A S, 4. A ab, 5. A a, 6. B B, 7. B ab, 8. B, 9. B a } Diese Grammatik ist vom Typ 3, denn 1. auf der linken Seite steht ei jeder Regel nur eine Variale. 2. auf der rechten Seite steht nur ein einziges Terminalsymol (Regeln 5, 8, 9) oder ein Terminalsymol gefolgt von einer Varialen (Regeln 1, 2, 3, 4, 6, 7). Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 22 (von 50)

Typen Einteilung für Grammatiken nach N-Chomsky (3) Welche Sprache wird von vorangegangener Grammatik erzeugt? z. B.: S aa aab aaa S S S aa aa L = { x { a, }* in x kommt aa vor }. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 23 (von 50)

Typen Einteilung für Grammatiken nach N-Chomsky (4) Chomsky Hierarchie ist strikt Typ 1 L = { x a n n c n, n 1 } Beispiel jeweils nicht in speziellerer Klasse Typ 2 L = { x a n n, n 1 } Typ 3 L = { x x enthält aa } Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 24 (von 50)

Sprach erkennung Es git effiziente Algorithmen, die ei einem vorgelegten Wort w und einer Typ 2 Grammatik G feststellen, o dieses Wort aus G aleitar ist, d. h. zur Sprache L(G) gehört. Für Typ 1 Grammatiken git es solche effiziente Algorithmen nicht! Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 25 (von 50)

Chomsky Hierarchie und Programmiersprachen Heutige Programmiersprachen liegen zwischen Typ 2 (kontextfrei) und Typ 1 (kontextsensitiv). D. h. die meisten Anweisungen sind formale Wörter einer kontextfreien Sprache, aer einige Anweisungen sind formale Wörter einer darüer hinaus gehenden Sprache. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 26 (von 50)

Reguläre Ausdrücke Reguläre Sprachen (Typ 3) lassen sich durch reguläre Ausdrücke eschreien. Der reguläre Ausdruck (0 1)*00(0 1)* erzeugt z. B. die Wörter 00, 100, 0100111. : oder * : keine oder eine oder elieig viele Wiederholungen Hilfszeichen zusätzlich zu ( und ). Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 27 (von 50)

Reguläre Ausdrücke (1) * (a*a*a*)* eschreit Wörter mit durch 3 teilarer Anzahl von a s, z. B. aaa, aaa, aaaaaa, 0 1 2 3 4 5 6 7 8 9 (0 1 2 3 4 5 6 7 8 9)* eschreit die natürlichen Zahlen einschließlich 0, 00, 000, 0 1 (0 1)* (+ ) 0 1 (0 1)* eschreit Addition oder Sustraktion oder Multiplikation von Binärzahlen. 0 1 (0 1)* / 1 (0 1)* eschreit Division von Binärzahlen. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 28 (von 50)

Reguläre Ausdrücke (2) (A T C G) (A T C G) (A T C G) eschreit die 4 3 = 64 möglichen Triplets üer dem Alphaet { A, T, C, G }: Wörter des genetischen Codes. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 29 (von 50)

Reguläre Ausdrücke (3) weitere Beispiele: Σ = { 0, 1 } (1) (0 1)* eschreit { 0, 1 }* (2) (0 1)* 0 (0 1)* (3) 1* 0 (0 1)* (4) (0 1)* 0 1* Menge aller Wörter die mindestens eine 0 enthalten (5) 0* 1 0* 1 (0 1)* Menge aller Wörter die mindestens zwei 1 en enthalten (6) (0* 1 0* 1 0*)* Menge aller Wörter, so dass # der 1 en gerade ist Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 30 (von 50)

Reguläre Ausdrücke (6) Die von regulären Ausdrücken erzeugten Sprachen sind Typ 3 Sprachen Zur Veranschaulichung dieses Zusammenhangs wird die Sprache des regulären Ausdrucks (0 1)* üer eine reguläre Grammatik erzeugt: S ε V = { S } S 0 Σ = { 0, 1 } S 1 S 0S S 1S Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 31 (von 50)

Verkürzte Schreiweise (1) Die Notation regulärer Ausdrücke kann auf die Produktionsregeln üertragen werden: S ε S 0 S 1 S 0S S 1S wird äquivalent geschrieen als S ε 0 1 0S 1S (Typ 3) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 32 (von 50)

Alternative Darstellungen für kontextfreie Grammatiken BNF (Backus-Naur-Form) verkürzte Darstellung für kontextfreie Grammatiken (Typ 2). Für mehrere Regeln, die alle diesele linke Seite haen A β 1 A β 2 A β n kann verkürzend eine einzige Metaregel angegeen werden (unter Verwendung des Metasymols ): A β 1 β 2 β n (Alternative) (Backus und Naur verwendeten statt allerdings ::= ). Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 33 (von 50)

Alternative Darstellungen für kontextfreie Grammatiken (1) EBNF (erweiterte Backus-Naur-Form) Weitere Akürzungen werden eingeführt: A αγ A αβγ wird zu A α[β]γ Bedeutung: Der Ausdruck β kann muss aer nicht zwischen α und γ eingefügt werden. (einmal oder keinmal) A αγ A αbγ B β B βb wird zu A α{β}γ Bedeutung: Der Ausdruck β kann zwischen α und γ elieig oft (auch null-mal) wiederholt werden. (keinmal, einmal oder n-mal) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 34 (von 50)

Beispiel: G = (V, Σ, P, S) G = ( { S, A }, { 0, 1 }, { S 0A11, A ε, A 0A, A 1A }, S ) Aus den Produktionen: S 0A11, A ε, A 0A, A 1A wird in EBNF: S 0A11, A { 0 1 } EBNF genauso mächtig, aer kürzer Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 35 (von 50)

Beispiel: Syntax für ganze Dezimalzahlen Herkömmliche Notation: GanzeZahl Zahl GanzeZahl Vorzeichen Zahl Ziffer Zahl Ziffer Zahl Vorzeichen + Vorzeichen Ziffer 0 Ziffer 1 Ziffer 2 Ziffer 3 Ziffer 4 Ziffer 5 Ziffer 6 Ziffer 7 Ziffer 8 Ziffer 9 Zahl BNF: GanzeZahl Zahl Vorzeichen EBNF: Ziffer GanzeZahl Ziffer Beachte: + 0 Zahl Ziffer 1 Vorzeichen Ziffer Zahl Zahl 2 3 4 5 6 7 8 9 [ + ] Ziffer { Ziffer } 0 1 2 3 4 5 6 7 8 9 In diesem Beispiel sind Nichtterminalsymole mittels < > geklammert dargestellt, Terminalsymole nicht geklammert. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 36 (von 50)

Syntaxäume (Aleitungsäume) G = (V, Σ, P, S) G = ( { S }, { (, ) }, { S (), S (S), S SS }, S ) Frage : Gehört ( ( ) ) ( ( ) ( ) ) zur Sprache? Mehrere Aleitungen für das sele Wort, die sich nur in der Reihenfolge der Anwendungen der Produktionen unterscheiden, lassen sich in einem Syntaxaum darstellen. (Es kann auch mehrere Syntaxäume für eine Aleitung geen) S S S ( S ) ( S ) ( ) S S ( ) ( ) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 37 (von 50)

Syntaxdiagramme Graphische Darstellung für kontextfreie Grammatiken (Typ 2) Grundausteine der Diagramme: nichtterminale Symole (Varialen) A ( Platzhalter für ein weiteres Diagramm) A Terminalsymole a ( Symole der formalen Sprache) a Konkatenationen (Wortkonstruktionen) ( Üergang von einem Knoten ( ) zum Folgenden) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 38 (von 50)

Syntaxdiagramme (1) Regeln im Umgang mit Syntaxdiagrammen: Jedes Diagramm esitzt einen Namen, genau einen eingehenden Pfeil und genau einen ausgehenden Pfeil. Jeder Knoten hat genau einen eingehenden Pfeil und genau einen ausgehenden Pfeil. Jedes Rechteck (Variale, Nichtterminalsymol) verweist auf ein weiteres Syntaxdiagramm, welches an der Rechteck-Stelle hinein kopiert zu denken ist. Um ein syntaktisch korrektes Wort zu erhalten, durchläuft man das Syntaxdiagramm eim Eingangspfeil eginnend auf einem der möglichen Wege is zum Ausgangspfeil. Daei notiert man der Reihe nach die Terminalsymole (in den Ovalen), an denen man vorei kommt. Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 39 (von 50)

Syntaxdiagramme (2) Beispiel: Grammatik von Folie 43 S A 0 A 1 1 0 1 A in S hineinkopiert: S A 0 1 1 0 1 Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 40 (von 50)

Syntaxdiagramme (3) Beispiel: Ausgeglichene Klammern von Folie 45 Rekursion: Syntaxdiagramm kann in sich selst eingesetzt/kopiert werden. S ( ( S ) S ) S Was wird hier kopiert/eingesetzt? Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 41 (von 50)

Allgemeiner Zusammenhang: EBNF Syntaxdiagramm 1. Alternative 2. Verkettung A a B. A A ab. A a a B B 3. Wiederholungen kein- oder einmal α kein-, ein- oder n-mal α A A [ α ]. { α }. A A α α Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 42 (von 50)

Umsetzung: Produktionen Syntaxdiagramm Beispiel: Ausgeglichene Klammern 1. Produktionen und EBNF P 2. Diagramme { S (), S ( S S SS} P : S ([ S] ) SS = ), ( ) S ( S ) S S S S ( S ) S Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 43 (von 50)

2. Endliche Automaten Endliche Automaten Konstruktionen mit endlichen Automaten Ageschlossenheit Minimalautomat Äquivalenzprolem für Endliche Automaten Leerheitsprolem und Wortprolem Kellerautomaten Turingmaschine Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 44 (von 50)

Endliche Automaten Bestandteile: Zustände: Z Eine andere Methode, um Typ 3 Sprachen zu definieren Zustandsüergänge: Beispiel: Start S A a a a B Startzustand Endzustand (gerichtete Kanten, eschriftet mit a Σ, Σ Alphaet) Die vom Automaten M akzeptierte Sprache T(M) ist die Menge aller Wörter w Σ*, die vom Startzustand zu einem Endzustand führen a T(M) T(M) aa T(M) aa T(M) aa T(M) usw. {, -5, -2, 1, 4, 7, } Es gilt: T(M) = { w { a, }* ((# a s in w) (# s in w)) 1(mod 3) } Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 45 (von 50)

Endliche Automaten (1) M 1 : a Start S 1 4 7 6 3 A a a B 5 2 8 a a Endzustände dürfen zwischendurch verlassen werden! Endzustand = Startzustand erlaut! T(M) = { w # a s in w # s in w = 1 mod 3 } (eim Teilen durch 3 entsteht eín Rest von 1), 2, 1, 4, 7, 11, M 2 : Start 3 1 S a 2 a a A a B 4 a a a a a a a (geht in eiden Endlichen Automaten) (geht nur im unteren Endl. Autom.) 1 2 3 Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 46 (von 50)

Endliche Automaten (2) Vom Automaten zur Typ 3-Grammatik: M 1 : S aa B a A ab S B as A kompaktere Schreiweise für: S aa S B S a Beispiel einer Aleitung: S aa aab aa Für jeden Automaten M git es eine Typ 3-Grammatik mit L(G) = T(M) Es git auch die Umkehrung: Zu jeder Typ 3-Grammatik G git es einen Automaten M mit T(M) = L(G) Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 47 (von 50)

Endliche Automaten (3) Bemerkung: Ein endlicher Automat muss folgende Bedingungen erfüllen: Jeder Zustand esitzt genau viele hinausgehende Kanten, die mit a eschriftet sind. c a Σ = { a,, c } Unzulässig: sog. nichtdeterministischer Automat a a Vervollständigung Unvollständiger Automat: a (Kanten fehlen) a, c c a a, c a,, c c Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 48 (von 50)

Konstruktionen mit endlichen Automaten Komplement Gegeen sei ein vollständiger Automat M mit L = T(M) Beispiel: a a a T(M) = { w { a, }* # der a s in w ist durch 3 teilar } Gesucht ist ein M, so dass T(M ) = L := Σ*\L M : a a a Man vertauscht Endzustände mit Nicht-Endzuständen Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 49 (von 50)

Konstruktionen mit endlichen Automaten (1) Die Typ 3-Sprachen sind unter Komplementildung ageschlossen. Falls L vom Typ 3, also L = T(M) für einen Automaten M, so ist auch L vom Typ 3, weil für M gilt L = T(M ). Formale Methoden der Informatik WiSe 2013/2014 teil 5, folie 50 (von 50)