Theoretische Informatik I



Ähnliche Dokumente
Theoretische Informatik I

Formale Sprachen und Grammatiken

Theorie der Informatik

Grammatiken. Einführung

Theoretische Informatik I

Programmiersprachen und Übersetzer

Grundbegriffe der Informatik

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Vorlesung Theoretische Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Mathematische Grundlagen der Informatik 2

Theoretische Grundlagen der Informatik

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Grundbegriffe der Informatik

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Grundbegriffe der Informatik

Grammatiken und die Chomsky-Hierarchie

Wortproblem für kontextfreie Grammatiken

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Informatik I WS 07/08 Tutorium 24

2.11 Kontextfreie Grammatiken und Parsebäume

7. Formale Sprachen und Grammatiken

Was ist ein Compiler?

Sprachen/Grammatiken eine Wiederholung

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

TheGI 1: Grundlagen und algebraische Strukturen Prof. Dr.-Ing. Uwe Nestmann Februar Schriftliche Leistungskontrolle (EK)

Kapitel 2. Methoden zur Beschreibung von Syntax

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Einführung in die Informatik Grammars & Parsers

Reguläre Sprachen Endliche Automaten

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Version 0.3. Installation von MinGW und Eclipse CDT

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Grundlagen der Theoretischen Informatik

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

1 Mathematische Grundlagen

Informatik I Tutorium WS 07/08

IT-Basics 2. DI Gerhard Fließ

Übung Theoretische Grundlagen

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Einfache kryptographische Verfahren

Prolog basiert auf Prädikatenlogik

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Informatik IC2. Balazs Simon

Grundlagen der Künstlichen Intelligenz

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Thüringer Kultusministerium. Abiturprüfung 2000

Theoretische Informatik SS 04 Übung 1

Zeichen bei Zahlen entschlüsseln

Kapitel 2: Formale Sprachen Gliederung

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 8 Saison 1964/1965 Aufgaben und Lösungen

Grundbegriffe der Informatik

Eine Anwendung mit InstantRails 1.7

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

erster Hauptsatz der Thermodynamik,

Grundlagen der Theoretischen Informatik, SoSe 2008

Data Mining: Einige Grundlagen aus der Stochastik

Grammatiken in Prolog

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Der Zwei-Quadrate-Satz von Fermat

Typumwandlungen bei Referenztypen

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Kurzanleitung So geht s

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Erfüllbarkeit und Allgemeingültigkeit

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Mächtigkeit von WHILE-Programmen

Einführung in die Computerlinguistik

Einführung in. Logische Schaltungen

Formale Grundlagen der Wirtschaftsinformatik

Parsing-EinfŸhrung Ð 1

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

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

3. Grundlagen der Linearen Programmierung

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Informationsblatt Induktionsbeweis

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Die Komplexitätsklassen P und NP

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Handout 6. Entwicklung von Makros

Logische Folgerung. Definition 2.11

Programmieren I. Formale Sprachen. Institut für Angewandte Informatik

Transkript:

Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten

Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften der Wörter Extrem flexibel, nicht notwendig berechenbar Endliche Automaten Beschreibung der Verarbeitung von Sprachen Schwerpunkt ist Erkennen korrekter Wörter Reguläre Ausdrücke Beschreibung der Struktur der Sprache Grammatiken Produktionsregeln beschreiben Aufbau der Wörter Auch für komplexere Strukturen als reguläre Sprachen Gängig für die Beschreibung von Programmiersprachen THEORETISCHE INFORMATIK I 2: 1 GRAMMATIKEN

Beispiel: Auszug der Grammatik von JAVA THEORETISCHE INFORMATIK I 2: 2 GRAMMATIKEN

Komponenten von Gramatiken Terminalsymbole: Alphabet der Sprache Symbole, aus denen die erzeugten Wörter bestehen sollen Bei Programmiersprachen meist ASCII-Symbole ohne Kontrollzeichen Variablen: Hilfsalphabet für Verarbeitung Beschreiben die syntaktischen Kategorien der Sprache Bei JAVA z.b. Applikation, Name, Variablenname, Anweisung,... Andere Bezeichnung: Nichtterminale Symbole Produktionen: Regeln zur Erzeugung von Wörtern Erklären wie syntaktischen Kategorien aufgebaut sind Erklären Erzeugung von Wörtern der Sprache in den einzelnen Kategorien z.b. Eine Applikation beginnt mit class gefolgt von einem Namen,... Startsymbol Erklärt welche syntaktische Kategorie beschrieben werden soll THEORETISCHE INFORMATIK I 2: 3 GRAMMATIKEN

Grammatiken mathematisch präzisiert Eine Grammatik ist ein 4-Tupel G = (V,T,P, S) mit V endliches Hilfsalphabet T endliches Terminalalphabet mit V T = P Γ + Γ endliche Menge der Produktionen (wobei Γ = V T ) Schreibweise für Produktionen: l r P statt (l, r) P S V Startsymbol THEORETISCHE INFORMATIK I 2: 4 GRAMMATIKEN

ARBEITSWEISE: PRODUKTION VON WÖRTERN DER ZIELSPRACHE G 1 = ({S}, {0, 1}, P, S) mit P = {S S1, S S0, S ǫ} Erzeugung von Wörtern: S ǫ S S0 0 S S0 S10 S010 S0010 0010 Nur Wörter über dem Terminalalphabet sind von Interesse ǫ, 0, 0010 gehören zur erzeugten Sprache S, S0, S10, S010, S0010 sind nur Zwischenschritte G 2 = ({S, A, B, C}, {0, 1}, P, S) mit P = {S B, S CA0, A BBB, B C1, B 0, CC1 ǫ} Ableitungen: S B 0 S B C1 Erfolglos, kein Wort der Zielsprache erreichbar S CA0 CBBB0 CC1BB0 BB0 0B0 000 THEORETISCHE INFORMATIK I 2: 5 GRAMMATIKEN

Arbeitsweise von Grammatiken präzisiert Ableitungsrelation Γ + Γ w z x,y Γ. l r P. w=xl y z=x r y Anwendung von Produktionen auf Wörter Erweiterte Ableitungsrelation w 0 z w=z w n+1 z u Γ. w u u n z w z n N. w n z Grammatik durch optionalen Index G ( Von G erzeugte Sprache Γ + Γ G ) spezifizierbar Menge der Terminalwörter, die aus S abgeleitet werden können L(G) {w T S w} THEORETISCHE INFORMATIK I 2: 6 GRAMMATIKEN

Grammatik für L = {0 k 1 l k l} G 3 = ({S}, {0, 1}, P, S) mit P = {S S1, S 0S1, S ǫ} Zeige L(G 3 ) = L per Induktion über Länge der Ableitung Ableitungen der Länge 0 liefern keine Terminalwörter Zeige: l N. w {0,1}. S l+1 w ( k l. w = 0 k 1 l ) Basisfall S 1 w (S w) P w = ǫ k 0. w = 0 k 1 0 Induktionsschritt Es gelte w {0, 1}. S l+1 w ( k l. w = 0 k 1 l ) v S S1 l+1 v S 0S1 l+1 v w {0, 1}. S l+1 w (v = w1 v = 0w1) w {0, 1}. k l. w = 0 k 1 l (v = w1 v = 0w1) k l. v = 0 k 1 l+1 v = 0 k+1 1 l+1 k (l + 1). v = 0 k 1 l+1 S l+2 THEORETISCHE INFORMATIK I 2: 7 GRAMMATIKEN (Annahme)

Klassifizierung von Grammatiken allgemein (Typ 0): keine Einschränkung an die Produktionen kontextsensitiv (Typ 1) nur Regeln der Form xay x z y oder S ǫ (x, y, z Γ, A V, z ǫ) (S ǫ nur erlaubt, wenn S nicht rechts in einer anderen Regel auftaucht) expansiv nur Regeln der Form x z mit x z, oder S ǫ (x Γ +, z (Γ {S}) + ) kontextfrei (Typ 2) nur Regeln der Form A z (z Γ, A V ) linear nur Regeln der Form A ǫ oder A u B v (A, B V, u, v T ) rechtslinear (Typ 3) nur Regeln der Form A ǫ oder A ab (A, B V, a T ) Manche Bücher: nur Regeln der Form A ǫ oder A v B (A, B V, v T ) linkslinear nur Regeln der Form A ǫ oder A B a (A, B V, a T ) THEORETISCHE INFORMATIK I 2: 8 GRAMMATIKEN

Beispiele für Grammatikklassen kontextsensitiv: Regeln x A y x z y oder S ǫ expansiv: Regeln x z mit x z, oder S ǫ kontextfrei: Regeln A z linear: Regeln A ǫ oder A u B v rechtslinear: Regeln A ǫ oder A a B linkslinear: Regeln A ǫ oder A B a G 1 = ({S}, {0, 1}, P, S) mit P = {S S1, S S0, S ǫ} linkslinear, kontextfrei, nicht expansiv, nicht kontextsensitiv (S rechts, S ǫ) G 2 = ({S, A, B, C}, {0, 1}, P, S) mit P = {S B, S CA0, A BBB, B C1, B 0, CC1 ǫ} allgemein (keine anderen Bedingungen erfüllt) G 3 = ({S}, {0, 1}, P, S) mit P = {S S1, S 0S1, S ǫ} linear, kontextfrei, nicht expansiv, nicht kontextsensitiv G 4 = ({S, A, B, C}, {a, b, c}, P, S) mit P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc} expansiv, nicht kontextfrei, nicht kontextsensitiv THEORETISCHE INFORMATIK I 2: 9 GRAMMATIKEN

Sprachklassen Typ-0 Sprachen Sprachen der Form L = L(G) für eine beliebige Grammatik G Typ-1 Sprachen (kontextsensitive Sprachen) Sprachen der Form L = L(G) für eine kontextsensitive Grammatik G L ist kontextsensitiv g.d.w. L = L(G) für eine expansive Grammatik G Typ-2 Sprachen (kontextfreie Sprachen) Sprachen der Form L = L(G) für eine kontextfreie Grammatik G Lineare Sprachen Sprachen der Form L = L(G) für eine lineare Grammatik G Typ-3 Sprachen (reguläre Sprachen) Sprachen der Form L = L(G) für eine rechtslineare Grammatik G L ist regulär g.d.w. L = L(G) für eine linkslineare Grammatik G L i { L L ist Sprache vom Typ i} THEORETISCHE INFORMATIK I 2: 10 GRAMMATIKEN

Typ-3 Sprachen vs. reguläre Sprachen Wie hängen Grammatiken und Automaten zusammen? Automaten verarbeiten Eingabewörter Jedes Symbol wird in einem Schritt abgearbeitet Symbol bestimmt, ob Automat im Zustand bleibt oder wechselt Grammatiken erzeugen Wörter Hilfssymbole werden im Endeffekt in Terminalwörter umgewandelt Nichtlineare Grammatiken erzeugen mehrere Symbole gleichzeitig Ableitungen in rechts-/linkslinearen Grammatiken erzeugen pro Schritt ein Terminalsymbol und verwenden jeweils nur ein Hilfssymbol Wie kann man umwandeln? Konstruiere zu jedem DEA eine äquivalente rechtslineare Grammatik Konstruiere zu jeder rechtslinearen Grammatik einen äquivalenten DEA L 3 = { L L ist regulär } THEORETISCHE INFORMATIK I 2: 11 GRAMMATIKEN

Umwandlung von DEAs in Typ-3 Grammatiken Für jeden DEA A gibt es eine Typ-3 Grammatik G mit L(G) = L(A) Gegeben DEA A = (Q, Σ, δ, q 0, F ) Wandle Abarbeitung von Symbolen in Erzeugung durch Grammatik um Setze G := (Q, Σ, P, q 0 ) mit P = {q aq δ(q, a) = q } {q ǫ q F } G ist per Konstruktion rechtslinear, also vom Typ 3 Zeige L(G) = L(A) w = w 1..w n L(G) q 0 w 1..w n q 1,..,q n Q. q 0 w 1 q 1 w 1 w 2 q 2... w 1..w n q n w 1..w n q 1,..,q n Q. q 0,w 1..w n q 1,w 2..w n... q n 1,w n q n, ǫ q n F q n F. w L(A) q 0, w 1..w n q n, ǫ THEORETISCHE INFORMATIK I 2: 12 GRAMMATIKEN

Umwandlung von Typ-3 Grammatiken in NEAs Für jede Typ-3 Grammatik G gibt es einen NEA A mit L(A) = L(G) Gegeben Grammatik G = (V, T, P, S) Wandle Erzeugung von Symbolen in Abarbeitung durch NEA um Setze A := (V, T, δ, S, F ) mit δ(x, a) = {X X ax P } und F = {X V X ǫ P } Zeige L(A) = L(G) w = w 1..w n L(A) X n F. S,w 1..w n X n, ǫ X 1,..,X n V. S,w 1..w n X 1, w 2..w n... X n, ǫ X n F X 1,..,X n V. S w 1 X 1... w 1..w n X n w 1..w n S w w L(G) THEORETISCHE INFORMATIK I 2: 13 GRAMMATIKEN

Umwandlungen am Beispiel Konvertiere DEA für (0+1) 01 A = ({ q 0,q 1,q 2 }, {0,1}, δ, q 0, {q 2 }) mit 1 0 Start q 0 0 1 q 1 1 0 q 2 Erzeugte Grammatik G = ({ q 0,q 1,q 2 }, {0,1}, P, q 0 ) mit P = {q 0 1q 0, q 0 0q 1, q 1 1q 2, q 1 0q 1, q 2 1q 0, q 2 0q 1, q 2 ǫ} Umwandlung von G in einen NEA Transformation erzeugt ursprünglichen Automaten THEORETISCHE INFORMATIK I 2: 14 GRAMMATIKEN

Die Chomsky Hierarchie L 3 L 2 L 1 L 0 Wichtige Vertreter der Klassen L 2 L 3 : {0 n 1 n n N} L 1 L 2 : {0 n 1 n 2 n n N} L 0 L 1 : {w i {0, 1} Das Programm mit Codierung w i hält bei Eingabe w i } Zugehörige Automatenmodelle L 0 : Turingmaschine L 1 : linear platzbeschränkte nichtdeterministische Turingmaschine L 2 : nichtdeterministischer endlicher Automat mit Kellerspeicher L 3 : endlicher Automat Mehr in zukünftigen Vorlesungen THEORETISCHE INFORMATIK I 2: 15 GRAMMATIKEN