4.2.4 Reguläre Grammatiken

Ähnliche Dokumente
4.2.4 Reguläre Grammatiken

Sprachen/Grammatiken eine Wiederholung

Vorlesung Theoretische Informatik

Zusammenfassung Grundzüge der Informatik 4

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Informatik I WS 07/08 Tutorium 24

Theorie der Informatik

Theoretische Informatik I

Grundbegriffe der Informatik

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Aufgabentypen die in der Klausur vorkommen

Z 50. Z O Z Int Z Komma Z Real Ziffer Komma Ziffer

Grundbegriffe der Informatik

Grammatiken und die Chomsky-Hierarchie

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Programmiersprachen und Übersetzer

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

Wortproblem für kontextfreie Grammatiken

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Prof. Dr. Jürgen Dix Institut für Informatik, TU Clausthal Informatik III, WS 2006/07 2/561

Informatik IC2. Balazs Simon

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

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka

Einführung in die Informatik Grammars & Parsers

Grundbegriffe der Informatik

Theoretische Informatik

Grundbegriffe der Informatik

THEORETISCHE INFORMATIK

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

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

Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung

Grundlagen der Theoretischen Informatik

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.

Mathematische Grundlagen der Informatik 2

ARBEITSBLATT ZU FORMALEN SPRACHEN

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten

Formale Sprachen. Script, Kapitel 4. Grammatiken

Was ist ein Compiler?

Theoretische Grundlagen der Informatik

Grammatiken. Einführung

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

66TT2. Herbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsaufgaben - Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnunrmer

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

GTI. Hannes Diener. 6. Juni Juni. ENC B-0123, diener@math.uni-siegen.de

Grundlagen der Theoretischen Informatik, SoSe 2008

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 )

Was bisher geschah: Formale Sprachen

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

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

Komplexität und Komplexitätsklassen

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

Syntax (= Satzgefüge), vgl. auch Grammatik

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

Theoretische Informatik

Reguläre Sprachen Endliche Automaten

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

Theoretische Informatik I

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

Einführung in Petri-Netze. Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: Motivation. Petri-Netze

Einführung in die Computerlinguistik

Grundbegriffe der Informatik Tutorium 7

Software-Engineering SS03. Zustandsautomat

Formelsammlung theoretische Informatik I

2.11 Kontextfreie Grammatiken und Parsebäume

2. Kapitel LEXIKALISCHE ANALYSE. Compilerbau Prof. Dr. Wolfgang Schramm

7. Formale Sprachen und Grammatiken

Automaten Sprachen Grammatiken. Allerdings ist auch die folgende Ableitung möglich, weshalb die Grammatik nicht eindeutig ist.

Endliche Automaten. Endliche Automaten 1 / 108

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

Formale Sprachen, reguläre und kontextfreie Grammatiken

Übungsaufgaben und Lösungen. zur Vorlesung. Theoretische Grundlagen der Informatik

Fachseminar WS 2008/09

Informatik I. Lutz Donnerhacke PGP:db c1c 6311 ef09 d819 e029 65be bfb6 c9cb

Theoretische Informatik 1 + 2

Formale Sprachen und Grammatiken

Grundlagen der theoretischen Informatik

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

Theoretische Informatik Mitschrift

Kombinatorische Optimierung

Funktionale Programmierung mit Haskell

6. Zustandsorientierte Modellierung

Informatik III. Dieses Dokument untersteht der Weiss nicht -Lizenz. Neue Versionen gibt es unter

Einführung in die Theoretische Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Sprachen. Grammatiken (Einführung)

Theoretische Informatik und Logik, VU 4.0 (Teil1: Automaten und Formale Sprachen)

Theoretische Informatik - Zusammenfassung

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Modelle der Informatik - Lösung der Übungsblätter

Automaten, Formale Sprachen und Berechenbarkeit I. Skript zur Vorlesung im WS 2001/02 an der TU München

2.4.3 Zustandsgraphen

Aufgaben Theoretische Informatik

2.4.3 Zustandsgraphen

Einführung in die Computerlinguistik

Einfache kryptographische Verfahren

Modul Formale Sprachen Bachelor Informatik 3. Semester

Automatentheorie Berechnungsmodell für logische Sprachen

Compilerbau. Wintersemester 2009 / Dr. Heiko Falk

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Transkript:

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 B N Rechtsreguläre Grammatik: A w P gilt: w = ε oder w = ab mit a T und B N Normalerweise wird mit regulär die rechtsregulären Grammatiken gemeint Theorem: Für jede rechtsreguläre Grammatik G r gibt es eine linksreguläre Grammatik G l, so dass L(G r ) = L(G l ). Umgekehrt genauso. 4.2.4 Reguläre Grammatiken Beispiel: Was ist die entsprechende linksreguläre Grammatik der folgenden rechtsregulären Grammatik G = (N, T, P, S)? T = {, N = { S, A P = { S A, A A, A B, B ε Startsymbol S Beispiel: Was ist die entsprechende linksreguläre Grammatik der folgenden rechtsregulären Grammatik G ab = (N, T, P, S)? T = { a, b N = { S P = { S as, S bs, S ε Startsymbol S

4.2.4 Reguläre Grammatiken Beispiel: Die folgende von G ab abgeänderte Grammatik G = (N, T, P, S) T = { a, b N = { S P = { S as, S Sb, S ε Startsymbol S ist weder links- noch rechtsregulär. L(G ab ) = {a,b* L(G), z.b. ba L(G) Beispiel: Was erzeugt die folgende Grammatik G = (N, T, P, S)? T = { a, b N = { S, U,, U P = { S asu, U U 2,, U 99 U, U ε, S bs, S ε Startsymbol S Ist {a,b* wirklich eine reguläre (Typ-3) Sprache? 4.2.4 Reguläre Grammatiken Charakteristische Eigenschaft regulärer Grammatiken: Mit einer Regel der Form S as hat man keine Kontrolle darüber, wie oft sie zur Ableitung angewandt wird, daher kann man alle Wörter a n, n, erzeugen Es ist nicht die Größe der zu erzeugenden Sprache, die beim Formulieren einer Grammatik Probleme bereitet, sondern die Feinheit der Unterscheidung zwischen erlaubten und auszuschließenden Wörtern: a n b m kann durch eine reguläre Grammatik erzeugt werden Die Restriktion n = m kann aber nicht erzwungen werden für beliebig lange Wörter k ( ) kann man eine reguläre Grammatik formulieren, die alle a n b n mit n k erzeugt, indem man die endlich vielen Produktionen für alle Fälle von bis k direkt in die Grammatik schreibt!

4.3 Automaten Eine Grammatik G definiert eine Sprache L(G). Aus praktischer Sicht ist das Entscheidungsproblem von großer Bedeutung. Gegeben sei eine Grammatik G mit Terminal-Alphabet T und ein Wort w T. Ist w L(G) oder nicht? Automaten verschiedener Typen lösen dieses Problem 4.3. Endliche Automaten Modellierung einfacher Automaten (Schalter, Fahrkarten, etc.) Definierter Ablauf von Aktionen Determinierte Folge von (akzeptierten) Aktionen Beispiel: Geräteschalter Anfangszustand, Endzustand, Eingabefolge. Endliche Automaten dienen zur Klassifikation von Eingabefolgen. Kippschalter drücken aus ein Kippschalter drücken

4.3. Endliche Automaten Ausstattung eines endlichen Automaten A: Eingabe: A wird von außen mit Eingabedaten versorgt Interne Zustände: A befindet sich immer in einem definierten Zustand. Es wird ein Anfangszustand definiert, von dem aus A unter Einfluss der Eingabe Zustandsübergänge durchführt Ausgabe: A kann unter gewissen Umständen Ausgabeinformation erzeugen 4.3. Endliche Automaten Beispiel: Zustandsdiagramm des Automaten A Münzeingaben mit Werten 5,, 2 in beliebiger Reihenfolge Nach Einwurf von insgesamt 2 akzeptiert A: Eintritt freigegeben! Gesamtwert der bisherigen Eingabe ist im aktuellen Zustand vermerkt

4.3. Endliche Automaten Eingabeband enthält Eingaben als Folgen von Zeichen Zustandsspeicher enthält jeweils aktuellen Zustand Programm, Kontrolle: Zustandsübergangsfunktion δ 4.3. Endliche Automaten Definition: Ein deterministischer endlicher Automat (DFA) ist gegeben durch A = (T, S, δ, s, F): eine endliche menge S von Zuständen eine endliche Menge T von Eingabezeichen einen eindeutig ausgezeichneten Anfangszustand s S eine Endzustandsmenge F S eine Übergangsfunktion δ : S x T S. δ(s, a) = t spezifiziert den Folgezustand t im Fall von Zustand s und Eingabezeichen a T δ kann durch einen Zustandsübergangs-Graphen oder als Menge von Tripeln (s, a, t) mit δ(s, a) = t gegeben sein δ ist manchmal nicht total (überall definiert)

4.3. Endliche Automaten Beispiel: Endlicher Automat A = (T, S, δ, s, F) zum Erkennen der Menge { (ab) n, n T = { a, b S = { s, s F = { s Beschreibung von δ durch Übergangsfunktion Zustandsdiagramm δ s s a a s - s s b - s b 4.3. Endliche Automaten Erweiterte Übergangsfunktion: Die Zustandsübergangsfunktion δ kann von Zeichen auf Wörter erweitert werden δ*(s, ε) = s für alle s S δ*: S x T* S δ*(s, aw) = δ*(δ(s, a), w) für alle a T, w T* Für einen endlichen Automaten A = (T, S, δ, s, F) wird die von A akzeptierte Sprache (die Menge aller von A akzeptierten Eingabefolgen) L(A) T* definiert durch: L(A) = { w; δ*(s, w) F

4.3. Endliche Automaten Beispiel: Endlicher Automat zum Erkennen der Menge { (ab) n, n Bearbeitung von abab: δ ( s, abab ) = δ*( δ(s, a), bab ) = δ*( s,bab ) = δ*( δ(s,b), ab ) = δ ( s, ab ) = δ*( δ(s, a), b ) = δ*( s, b ) = δ*( δ(s, b), ε ) = δ*( s, ε ) = s abab wird akzeptiert, da s F Bearbeitung von aba: δ ( s, aba ) = δ*( δ(s, a), ba ) = δ*( s,ba ) = δ*( δ(s,b), a ) = δ ( s, a ) = δ*( δ(s, a), ε ) = δ*( s, ε ) = s aba wird nicht akzeptiert, da s F 4.3. Endliche Automaten Ein endlicher Automat kann einen Endzustand zwischendurch betreten und danach wieder verlassen Beispiel: Erkennen von { w {, : w = n m mit n, m > s s Weglassen des Zustands s 2 und aller mit ihm verbundenen Kanten würde an der erkannten Sprache nichts ändern! Endzustandsmenge F = { s, s { w {, : w = n m mit n, m wird erkannt Endzustandsmenge F = { s 2 { w {, : w = n m w' mit n, m >, w' {, wird erkannt s 2

4.3. Endliche Automaten Bisher muss die Funktion δ eines DFA nicht total sein Ein DFA A = (T, S, δ, s, F) heisst vollständig, wenn dom(δ) = S x T. D.h. δ(s, a) = t ist definiert für alle Paare (s, a). Jeder DFA kann durch Hinzunahme eines Zustands tot vervollständigt werden: Wenn δ(s, a) nicht definiert ist, ergänze δ(s, a) = tot Beispiel: 4.3. Endliche Automaten Lemma: Für jeden DFA A existiert eine reguläre Grammatik G mit L(A)=L(G) Beispiel: DFA zum Erkennen von { w {, : w = n m mit n, m > s s s 2 Reguläre Grammatik G = (N, T, P, S): N = {s, s, s 2, T = {,, S = s P = { s s, s s, s s, s ε, s s 2, s 2 s 2, s 2 s 2 erkennt genau dieselbe Sprache

4.3. Endliche Automaten Lemma: Für jede reguläre Grammatik G existiert ein DFA A mit L(G)=L(A) Theorem: Reguläre Grammatiken und deterministische endliche Automaten sind bezüglich ihrer Sprachen gleich mächtig Endliche Automaten liefern die operativen Werkzeuge zum Lösen des Entscheidungsproblems für reguläre Grammatiken. Dieselbe Funktion erfüllen nichtdeterministische Kellerautomaten (kontextfreie Grammatiken), linear beschränkte Automaten (kontextsensitive Grammatiken), und Turingmaschine (Typ- Grammatiken).