Grammatiken. Einführung



Ähnliche Dokumente
Programmiersprachen und Übersetzer

Theoretische Informatik I

Grundbegriffe der Informatik

Theorie der Informatik

Grammatiken und die Chomsky-Hierarchie

Formale Sprachen und Grammatiken

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik

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

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

Reguläre Sprachen Endliche Automaten

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

2.11 Kontextfreie Grammatiken und Parsebäume

Informatik IC2. Balazs Simon

Informationsblatt Induktionsbeweis

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

Grundlagen der Theoretischen Informatik

Was bisher geschah: Formale Sprachen

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

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik, SoSe 2008

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

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

Mathematische Grundlagen der Informatik 2

Wortproblem für kontextfreie Grammatiken

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

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

So erstellen Sie nützliche Beschreibungen zu Ihren Tradingdaten

Was meinen die Leute eigentlich mit: Grexit?

Vorlesung Theoretische Informatik

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

Einführung in die Algebra

Zeichen bei Zahlen entschlüsseln

Prolog basiert auf Prädikatenlogik

Bauteilattribute als Sachdaten anzeigen

Erfahrungen mit Hartz IV- Empfängern

Semantik von Formeln und Sequenzen

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Grundlagen der Künstlichen Intelligenz

Regeln für das Qualitäts-Siegel

Erstellen der Barcode-Etiketten:

Primzahlen und RSA-Verschlüsselung

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Übung Theoretische Grundlagen

Anwendungsbeispiele Buchhaltung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

1 Mathematische Grundlagen

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Der Zwei-Quadrate-Satz von Fermat

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Übungen für Woche 10

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Die Post hat eine Umfrage gemacht

Die Komplexitätsklassen P und NP

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Fax einrichten auf Windows XP-PC

Erfüllbarkeit und Allgemeingültigkeit

Objektorientierte Programmierung für Anfänger am Beispiel PHP

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Einrichtung eines Zugangs mit einer HBCI-Chipkarte bei der Commerzbank

1.5 Folgerungen aus dem Kolmogoroff- Axiomensystem P( ) = 0.

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Theoretische Informatik I

Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden einander nicht.

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Logische Folgerung. Definition 2.11

Einführung in. Logische Schaltungen

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

ALEMÃO. Text 1. Lernen, lernen, lernen

Handout 6. Entwicklung von Makros

Linearen Gleichungssysteme Anwendungsaufgaben

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Version 0.3. Installation von MinGW und Eclipse CDT

Anleitung zur Datensicherung und -rücksicherung in der VR-NetWorld Software

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 )

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

Kapitel 7 und Kapitel 8: Gleichgewichte in gemischten Strategien. Einleitung. Übersicht Teil 2 2. Übersicht 3

teischl.com Software Design & Services e.u. office@teischl.com

Reporting Services und SharePoint 2010 Teil 1

Charakteristikenmethode im Beispiel

Beispiel Zusammengesetzte Zufallsvariablen

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Kapitalerhöhung - Verbuchung

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Repetitionsaufgaben Wurzelgleichungen

Kapitalerhöhung - Verbuchung

15 Optimales Kodieren

3. Zusammenhang. 22 Andreas Gathmann

Professionelle Seminare im Bereich MS-Office

Beweisbar sichere Verschlüsselung

Kurze Anleitung zum Guthaben-Aufladen bei.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Codierungstheorie Rudolf Scharlau, SoSe

Fischerprüfung Online: Registrierung und eine Übersicht der Funktionen für Kandidaten

Wissensdatenbankeintrag zur Sage New Classic Ab Version 2011 WDB Artikel: 21306

Transkript:

Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische Ausdrücke sind, dann auch (A) + (B) und (A) (B) Es ist leicht zu sehen, dass man mit den folgenden Regeln genau die oben definierten Ausdrücke erzeugen kann: S (S) + (S) S (S) (S) S a S a + a S a a Dabei symbolisiert ein, dass man die linke Seite durch die rechte Seite ersetzen darf. Damit haben wir ein Regelsystem aufgestellt, das die (oben definierte) Menge (Sprache) arithmetischer Ausdrücke beschreibt. Zielsetzung: Man möchte Regelsysteme (Grammatiken) aufstellen, die relevante Sprachen beschreiben. Man möchte aber auch, dass Texte möglichst effizient auf syntaktische Korrektheit (bezüglich der Grammatik) überprüft werden können. Hierbei gilt, dass stärkere Einschränkungen der erlaubten Regeln zwar diese Überprüfung vereinfachen, aber auch die Klasse der erzeugbaren Sprachen verkleinern. Wir untersuchen insbesondere die Konsequenzen verschiedener Einschränkungen der erlaubten Typen von Regeln. 1

Definition Definition: Eine Grammatik wird definiert durch: eine endliche Menge von Terminalzeichen T eine endliche Menge von Variablen V ; V T = eine Startvariable S V eine endliche Menge P von Ableitungsregeln (l, r) mit l (V T) + und r (V T). Interpretation: Die Anwendung einer Regel (l, r) bedeutet das Ersetzen eines Teilworts l in einem Wort x durch r mit dem Resultat y; wir schreiben: x y. x z bedeutet, dass z sich aus x durch Anwendung einer endlichen Folge von Regeln ableiten lässt. Die von einer Grammatik G erzeugte Sprache ist: L(G) := {w T S w}. Definition: Bei dem Wortproblem geht es darum, für eine Grammatik G und ein Wort w T zu entscheiden, ob w L(G). Beispiel: Gegeben sind die Syntax einer Programmiersprache und eine Zeichenkette w. Zu entscheiden ist, ob w ein syntaktisch korrektes Programm darstellt. 2

Beispiele Beispiel: Wir betrachten die Sprache aller Wörter über {0,1}, die gleich viele Nullen wie Einsen haben: L := {w {0,1} w 0 = w 1 } ( w a gibt an, wie oft der Buchstabe a in w vorkommt). Die Grammatik G sei definiert durch T := {0, 1}, V := {S}, P := {S ǫ, S 0S1S, S 1S0S}. Wir zeigen nun, dass G die Sprache L erzeugt. L(G) L: Dies folgt daraus, dass jede Regel aus P gleich viele Nullen wie Einsen hinzufügt (formal: Induktion über w ). L L(G): Dies zeigen wir per Induktion über w : I.A. ( w = 0), dann w = ǫ L(G). I.S. ( w > 0), o.b.d.a. w 1 = 0. Sei i > 1 die kleinste Zahl mit w 1... w i 0 = w 1... w i 1. Dann gilt: 1. w 1 = 0 (Annahme) 2. w i = 1 (Wahl von i) 3. w 2... w i 1 0 = w 2... w i 1 1 (Wahl von i, 1, 2) 4. w i+1... w n 0 = w i+1... w n 1 (w L, 1, 2, 3) Mit der I.V. folgt: S w 2... w i 1 (3) und S w i+1... w n (4) und damit S 0S1S 0w 2... w i 1 1w i+1... w n = w. 3

Rechtslineare Grammatiken Definition und Eigenschaften Definition: Eine Grammatik heißt rechtslinear, wenn ihre Ableitungsregeln der Form A ab oder A ǫ (mit a T; A, B V ) sind. Satz: Sei L eine Sprache, die von einem DFA erkannt wird. Dann wird L auch von einer rechtslinearen Grammatik erzeugt. Beweis: Sei A = (Σ, Q, q 0, F, δ) ein DFA für L. Definiere die Grammatik G = (T, V, S, P): T := Σ V := Q S := q 0 P := {(q, aq ) q = δ(q, a)} {(q, ǫ) q F }. Man sieht leicht, dass für jedes Wort w = w 1... w n genau dann in A ein akzeptierender Rechenweg q 0 w 1 w 2... w n q 1 w 2... w n q n (mit q n F) existiert, wenn G eine Ableitungsfolge q 0 w 1 q 1 w 1 w 2... w n q n w 1 w 2... w n ermöglicht. Beobachtung: Diese Konstruktion ist auch für NFAs möglich. Umgekehrt gilt allgemein, dass die Anwendung der Grammatiken am einfachsten durch nichtdeterministische Maschinen simuliert wird. 4

Rechtslineare Grammatiken Eigenschaften Satz: Sei L eine Sprache, die von einer rechtslinearen Grammatik erzeugt wird. Dann wird L auch von einem NFA erkannt. Beweis: Sei G = (T, V, S, P) eine solche Grammatik, die L erzeugt. Definiere den NFA A = (Σ, Q, q 0, F, δ): Σ := T Q := V q 0 := S F := {A (A, ǫ) P } δ(a, a) := {B (A, ab) P }. Man sieht leicht, dass für jedes Wort w = w 1... w n genau dann in A ein akzeptierender Rechenweg S w 1 w 2... w n A 1 w 2... w n A n (mit A n F) existiert, wenn G eine Ableitungsfolge S w 1 A 1 w 1 w 2... w n A n w 1 w 2... w n ermöglicht. Fazit: Die Klasse der von endlichen Automaten (DFAs, NFAs) erkannten Sprachen (die regulären Sprachen) und die Klasse der von rechtslinearen Grammatiken erzeugten Sprachen stimmen überein. (Die rechtslinearen Grammatiken werden auch regulär genannt.) 5