Post on 16-Jun-2020
Grundbegri�e der InformatikKapitel 19: Reguläre Ausdrücke und rechtslineare Grammatiken
Thomas Worsch
KIT, Institut für Theoretische Informatik
Wintersemester 2015/2016
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 1 / 49
Was können endliche Akzeptoren?manche Sprachen mit EA erkennbar
z. B. {a}+{b} ∪ {b}+{a}
manche Sprachen nicht mit EA erkennbarz. B. {akbk | k ∈ N0}
Charakterisierung der erkennbaren Sprachen?i. e. Beschreibung ohne Benutzung endlicher Akzeptoren?
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 2 / 49
Überblick
Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 3 / 49
Wo sind wir?
Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 4 / 49
Wo sind wir?
Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 5 / 49
Der Begri� regulärer Ausdruck hat heute verschiedeneBedeutungen
Beschreibung formaler Sprachen
Ursprung:
Stephen KleeneRepresentation of Events in Nerve Nets and Finite Automatain: Shannon, McCarthy, Ashby (eds.): Automata Studies, 1956
heute: verschiedene Bedeutungenin dieser Vorlesung: die „klassische“ DefinitionVerallgemeinerung: regular expressions
sehr nützlich (emacs, grep, sed, . . . , Java, Python, . . . )
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 6 / 49
Definition regulärer Ausdrücke (1)Alphabet Z = {|, (, ), *, O/} von «Hilfssymbolen»
Alphabet A enthalte kein Zeichen aus Z
regulärer Ausdruck über A ist eine Zeichenfolge über demAlphabet A ∪ Z , die gewissen Vorschri�en genügt.
Menge der regulären Ausdrücke (RA) ist wie folgt festgelegt:O/ ist RAfür jedes x ∈ A ist x RAwenn R1 und R2 RA sind, dann auch (R1|R2) und (R1R2)wenn R ein RA ist, dann auch (R*)Nichts anderes sind reguläre Ausdrücke.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 7 / 49
Beispiele
sei A = {a, b}
Beispiele regulärer Ausdrücke:O/ a b(ab) (O/b) (aO/)((ab)a) (((ab)a)a) ((ab)(aa))(O/|b) (a|b) (a|(ba))((a(a|b))|b) (a|(b|(a|a)))(O/*) (a*) ((a*)*)((ba)(b*)) (((ba)b)*)(((((ab)b)*)*)|(O/*))
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 8 / 49
Klammereinsparungsregeln
„Stern- vor Punktrechnung“
„Punkt- vor Strichrechnung“
Beispiel:R1|R2R3* Kurzform für(R1|(R2(R3*)))
Bei mehreren gleichen binären Operatoren ohne Klammerngilt das als links geklammert
BeispielR1|R2|R3 Kurzform für((R1|R2)|R3)
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 9 / 49
Beispiele für Klammereinsparungsregelnabaa sta� (((ab)a)a)
ab(aa) sta� ((ab)(aa))
a(a|b)|b sta� ((a(a|b))|b)
(abb)**|O/* sta� (((((ab)b)*)*)|(O/*))
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 10 / 49
Nichtbeispielekeine regulären Ausdrücke über {a, b}:
(|b) vor | fehlt ein regulärer Ausdruck|O/| vor und hinter | fehlt je ein regulärer Aus-
druck()ab zwischen ( und ) fehlt ein regulärer Ausdruck((ab) Klammern müssen „gepaart“ au�reten*(ab) vor * fehlt ein regulärer Ausdruckc* c ist nicht Zeichen des Alphabetes
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 11 / 49
Definition der Syntax regulärer Ausdrücke (2)alternative Definition mit Hilfe einerkontextfreien Grammatik
reguläre Ausdrücke:die von der folgenden Grammatik erzeugten Wörter
G = ({R}, {|, (, ), *, O/} ∪A, R, P )
mit P = {R → O/}
∪ {R → x | x ∈ A}
∪ {R → (R|R), R → (RR)}
∪ {R → (R*)}
vergleiche wohlgeformte Klammerausdrücke (Kap. 11)
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 12 / 49
Ableitungsbaum eines regulären Ausdrucks
R
( R
( R
( R
a
* )
R
( R
b
* )
)
* )
(((a*)(b*))*)
oder kürzer(a*b*)*
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 49
Wo sind wir?
Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 14 / 49
Durch R beschriebene formale Sprache 〈R〉〈O/〉 = {}〈x〉 = {x } für jedes x ∈ A〈R1|R2〉 = 〈R1〉 ∪ 〈R2〉
〈R1R2〉 = 〈R1〉 · 〈R2〉
〈R*〉 = 〈R〉∗
Definition folgt der für reguläre Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 15 / 49
Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}
R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗
R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗
= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗
Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49
Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}
R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗
R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗
= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗
Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49
Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}
R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗
R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗
= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗
Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49
Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}
R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗
R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗
= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗
Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49
Bestimmung von 〈R〉 entlang des Ableitungsbaums von R
R
( R
( R
( R
a
* )
R
( R
b
* )
)
* )
analog zur Auswertungarithmetischer Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49
Bestimmung von 〈R〉 entlang des Ableitungsbaums von R
R
( R
( R
( R
a {a}
* )
R
( R
b {b}
* )
)
* )
analog zur Auswertungarithmetischer Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49
Bestimmung von 〈R〉 entlang des Ableitungsbaums von R
R
( R
( R
( R {a}
a {a}
* )
R
( R {b}
b {b}
* )
)
* )
analog zur Auswertungarithmetischer Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49
Bestimmung von 〈R〉 entlang des Ableitungsbaums von R
R
( R
( R {a}∗
( R {a}
a {a}
* )
R {b}∗
( R {b}
b {b}
* )
)
* )
analog zur Auswertungarithmetischer Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49
Bestimmung von 〈R〉 entlang des Ableitungsbaums von R
R
( R {a}∗{b}∗
( R {a}∗
( R {a}
a {a}
* )
R {b}∗
( R {b}
b {b}
* )
)
* )
analog zur Auswertungarithmetischer Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49
Bestimmung von 〈R〉 entlang des Ableitungsbaums von R
R ({a}∗{b}∗)∗
( R {a}∗{b}∗
( R {a}∗
( R {a}
a {a}
* )
R {b}∗
( R {b}
b {b}
* )
)
* )
analog zur Auswertungarithmetischer Ausdrücke
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49
Wie ist das denn eigentlich?Kann man «allgemein» von regulären Ausdrücken R1,R2feststellen, ob 〈R1〉 = 〈R2〉 ist?
Geht das algorithmisch?
Welche formalen Sprachen sind denn durch reguläreAusdrücke beschreibbar?
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 18 / 49
Äquivalenz regulärer AusdrückeEs gibt Algorithmen, um für reguläre Ausdrücken R1,R2festzustellen, ob 〈R1〉 = 〈R2〉 ist
sogar konzeptionell ziemlich einfache
Aber: Dieses Problem ist PSPACE-vollständig.Definition: in einer anderen Vorlesungalle bisher bekannten (!) Algorithmen sindsehr sehr sehr sehr langsam
Man weiß nicht, ob es vielleicht doch Algorithmen mitpolynomieller Laufzeit für das Problem gibt.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 49
Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+
allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+
gelegentlich Abkürzung (R)+ bzw. R+
abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗
= {abc} ∪ {}∗ = {abc, ε }
allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49
Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+
allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+
gelegentlich Abkürzung (R)+ bzw. R+
abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗
= {abc} ∪ {}∗ = {abc, ε }
allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49
Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+
allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+
gelegentlich Abkürzung (R)+ bzw. R+
abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗
= {abc} ∪ {}∗ = {abc, ε }
allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49
Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+
allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+
gelegentlich Abkürzung (R)+ bzw. R+
abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗
= {abc} ∪ {}∗ = {abc, ε }
allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49
Wo sind wir?
Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 21 / 49
RFC 5322: Internet Message Formatsiehe z. B. http://tools.ietf.org/html/rfc5322
legt fest, was wo in einer Email stehen muss, soll, darf oderauch nicht . . .
benutzt dazu etwas namens ABNF„augmented Backus Naur form“seinerseits spezifiziert in RFC 5234für nachfolgendes Beispiel: im wesentlichen reguläreAusdrückeim allgemeinen deutlich mächtiger
Beispiel: Datums- und Zeitangaben in EmailsDate: Wed, 21 Jan 2015 12:08:47 +0100
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 22 / 49
RFC 5322, Abschni� 3.3: Date and Time Specification,fast wörtlich:
date-time = [ day-of-week "," ] date time [CFWS]
day-of-week = ([FWS] day-name)day-name = "Mon" / "Tue" / "Wed" / "Thu" / . . .
date = day month yearday = ([FWS] 1*2DIGIT FWS)month = "Jan" / "Feb" / "Mar" / "Apr" / . . .year = (FWS 4*DIGIT FWS)
time = time-of-day zonetime-of-day = hour ":" minute [ ":" second ]hour = 2DIGITminute = 2DIGITsecond = 2DIGITzone = (FWS ( "+" / "-" ) 4DIGIT)
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 23 / 49
Datums- und Zeitangaben in Emails (2)Beispieltime-of-day = hour ":" minute [ ":" second ]hour = 2DIGIT
in jeder Zeilelinks vom = ein Name für einen regulären Ausdruckrechts vom = etwas wie ein regulärer Ausdruck,der sta� Teilausdrücken deren Namen benutzen kann
an anderer Stelle definiert:DIGIT = 0|1|2|3|4|5|6|7|8|9, also〈 DIGIT 〉 = {0,1,2,3,4,5,6,7,8,9}
2DIGIT ist Abkürzung für DIGIT DIGIT , also z. B.〈 2DIGIT 〉 = {00, 01, 02, . . . , 99}
also z. B. 〈 hour 〉 = {00, 01, 02, . . . , 99}
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 24 / 49
Datums- und Zeitangaben in Emails (3)Beispieltime-of-day = hour ":" minute [ ":" second ]hour = 2DIGITminute = 2DIGITsecond = 2DIGIT
Wörter in Anführungszeichen stehen für sich
eckige Klammern bedeuten, dass ein Teil optional ist
alsotime-of-day = hour : minute | hour : minute : second
Beispiele: 09:50 oder 09:50:17
beachte:9:50 ist nicht syntaktisch korrektaber 39:71 ist syntaktisch korrekt
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 25 / 49
Wo sind wir?
Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 26 / 49
Charakterisierungen regulärer Sprachen
SatzFür jede formale Sprache L sind äquivalent:1. L kann von einem endlichen Akzeptor erkannt werden.2. L kann durch einen regulären Ausdruck beschrieben werden.3. L kann von einer rechtslinearen Grammatik erzeugt werden.
Solche Sprachen heißen regulär.
Beweis in «Theoretische Grundlagen der Informatik»
rechtslineare Grammatiken kommen gleichsie sind kontextfrei,also ist jede reguläre Sprache eine kontextfreie Spracheaber nicht umgekehrt
Gegenbeispiel: {akbk | k ∈ N0}
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 27 / 49
Zum Beweis des Satzeskonstruktiv:
von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉
„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshall
von regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):
„relativ leicht“von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):
„am schwierigsten“
beachte: für Rückrichtungen keine Konstruktionen nötig
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49
Zum Beweis des Satzeskonstruktiv:
von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉
„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshallvon regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):
„relativ leicht“
von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):
„am schwierigsten“
beachte: für Rückrichtungen keine Konstruktionen nötig
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49
Zum Beweis des Satzeskonstruktiv:
von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉
„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshallvon regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):
„relativ leicht“von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):
„am schwierigsten“
beachte: für Rückrichtungen keine Konstruktionen nötig
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49
Zum Beweis des Satzeskonstruktiv:
von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉
„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshallvon regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):
„relativ leicht“von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):
„am schwierigsten“
beachte: für Rückrichtungen keine Konstruktionen nötig
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49
Was ist wichtigDas sollten Sie mitnehmen:
Definition „klassischer“ regulärer Ausdrückeatomare: O/, a ∈ Azusammengesetzte: (R1|R2), (R1R2), (R)*
wissen: reguläre Ausdrücke und die VerallgemeinerungRegular Expressions sind z. B. bei Textverarbeitungsaufgabenmanchmal nützlich
Das sollten Sie üben:zu L ein R mit 〈R〉 = L konstruierenzu R das 〈R〉 bestimmen
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 29 / 49
Wo sind wir?
Reguläre Ausdrücke
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 30 / 49
Motivationkontextfreie Grammatiken erzeugen jedenfalls zum Teilandere formale Sprachen, als man mit endlichen Akzeptorenerkennen kann.
Beispiel:G = ({X }, {a,b},X , {X → aXb | ε }) erzeugt {akbk | k ∈ N0}
und diese Sprache ist nicht regulär.
Kann man kontextfreie Grammatiken so einschränken,dass sie zu endlichen Akzeptoren passen?
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 31 / 49
Rechtslineare Grammatiken: DefinitionEine rechtslineare Grammatik ist eine kontextfreieGrammatik G = (N ,T , S, P ), die der folgendenEinschränkung genügt: Jede Produktion ist
entweder von der Form X → w mit w ∈ T ∗
oder von der Form X → wY mit w ∈ T ∗ und X ,Y ∈ N .
also auf jeder rechten Seitehöchstens ein Nichterminalsymbolund wenn dann nur als letztes Symbol
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 32 / 49
Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }
L(G ) = 〈(ab|bba)*〉
G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }
L(G ) = 〈(a|b)*ababb(a|b)*〉
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49
Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }
L(G ) = 〈(ab|bba)*〉
G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }
L(G ) = 〈(a|b)*ababb(a|b)*〉
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49
Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }
L(G ) = 〈(ab|bba)*〉
G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }
L(G ) = 〈(a|b)*ababb(a|b)*〉
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49
Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }
L(G ) = 〈(ab|bba)*〉
G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }
L(G ) = 〈(a|b)*ababb(a|b)*〉
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49
Rechtslineare Grammatiken: NichtbeispielG = ({X }, {a,b},X , {X → aXb | ε }) ist nicht rechtslinear,
denn in X → aXb steht das Nich�erminalsymbol X nicht amrechten Ende.
Da die erzeugte formale Sprache {akbk | k ∈ N0} vonkeinem endlichen Akzeptor erkannt wird,kann es auch gar keine rechtslineare Grammatik geben.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 34 / 49
SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.
Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.
Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,
die wir hier nicht weiter betrachten werden.
Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49
SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.
Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.
Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,
die wir hier nicht weiter betrachten werden.
Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49
SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.
Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.
Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,
die wir hier nicht weiter betrachten werden.
Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49
SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.
Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.
Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,
die wir hier nicht weiter betrachten werden.
Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49
Vorteil rechtslinearer GrammatikenWozu rechtslineare Grammatiken?
gegenüber deterministischen endlichen Akzeptoren:manchmal deutlich kürzer und übersichtlicherhinzuschreiben
genaueres Verständnis dafür: im 3. Semester beinichtdeterministischen endliche Akzeptoren
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 36 / 49
Vorteil rechtslinearer GrammatikenWozu rechtslineare Grammatiken?
gegenüber deterministischen endlichen Akzeptoren:manchmal deutlich kürzer und übersichtlicherhinzuschreiben
genaueres Verständnis dafür: im 3. Semester beinichtdeterministischen endliche Akzeptoren
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 36 / 49
Wo sind wir?
Reguläre Ausdrücke
Rechtslineare Grammatiken (Typ 3)
Kantorowitsch-Bäume und strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 37 / 49
Ziel dieses Abschni�esBeweisskizze für das folgendeLemma.Zu jedem regulären Ausdruck R gibt es eine rechtslineareGrammatik G mit L(G ) = 〈R〉.
Wie beweist man, dass eine Aussage für alle regulärenAusdrücke gilt?
eine Möglichkeit: strukturelle InduktionVariante/Verallgemeinerung vollständiger Induktion,ohne explizit über natürliche Zahlen zu sprechen
darauf arbeiten wir jetzt in mehreren Schri�en hin:Darstellung regulärer Ausdrücke mit Bäumeneine Variante „normaler vollständiger Induktion“strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 38 / 49
Mit Kantorowitsch-Bäumen kann man z. B.reguläre Ausdrücke repräsentieren
.
.
|
b O/
a
*
b
regulärer Ausdruck: ((b|O/)a)(b*)
Darstellung als sogenannterKantorowitsch-Baum
innere Knoten: «Operatoren»Blä�er: «Operanden»
«Regex-Bäume»
Beachte:das ist kein Ableitungsbaumgemäß einer Grammatikaber «genauso gut» und kompakter
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 39 / 49
Regex-Bäume — etwas genauer
O/ a
*
|
Es sei A Alphabet.
Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49
Regex-Bäume — etwas genauer
O/ a
*
|
Es sei A Alphabet.
Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49
Regex-Bäume — etwas genauer
O/ a
*
|
Es sei A Alphabet.
Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49
Regex-Bäume — etwas genauer
O/ a
*
|
Es sei A Alphabet.
Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49
Vollständige Induktion über die Baumhöhe
Größere Bäume sind „aus kleineren zusammengesetzt“,und zwar auf eindeutige Weise.
Bijektion Regex-Bäume↔ reguläre Ausdrücke
Höhe h(T ) eines Baumes
h(T ) =
0 falls die Wurzel Bla� ist
1 +maxi h(Ui ) falls die Ui alleUnterbäume von T sind
Beweis einer Aussage für alle regulären Ausdrücke:durch Beweis der Aussage für alle Regex-Bäume
Beweis einer Aussage für alle Regex-Bäume:vollständige Induktion über Höhe der Regex-Bäume
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 41 / 49
Vollständige Induktion über die Baumhöhe
Größere Bäume sind „aus kleineren zusammengesetzt“,und zwar auf eindeutige Weise.
Bijektion Regex-Bäume↔ reguläre Ausdrücke
Höhe h(T ) eines Baumes
h(T ) =
0 falls die Wurzel Bla� ist
1 +maxi h(Ui ) falls die Ui alleUnterbäume von T sind
Beweis einer Aussage für alle regulären Ausdrücke:durch Beweis der Aussage für alle Regex-Bäume
Beweis einer Aussage für alle Regex-Bäume:vollständige Induktion über Höhe der Regex-Bäume
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 41 / 49
Vollständige Induktion über die Baumhöhe — einProblem
naive Vorgehensweise:beim Schri� zu Bäumen der Höhe n + 1Induktionsvoraussetzung nur für Bäume der Höhe n
aber:die Unterbäume eines Baumes der Höhe n + 1 könnenbeliebige Höhen i ≤ n haben.
anschaulich: man darf auch für die kleineren Unterbäumeso etwas wie die Induktionsvoraussetzung benutzen.
präzise: siehe Kapitel 6
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 42 / 49
Erinnerung: Verallgemeinerung vollständiger InduktionEs sei B (n) eine Aussage, die von einer Zahl n ∈ N0 abhängt.
wollen beweisen: ∀n ∈ N0 : B (n)
definiere Aussage A (n) als ∀i ≤ n : B (i ).
beweise durch vollständige Induktion: ∀n ∈ N0 : A (n)
das reicht, denn aus A (n) folgt B (n)
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 43 / 49
Induktion über Höhe der Regex-BäumeAussage B (n):
Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).
Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.
Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass dieInduktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).
zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49
Induktion über Höhe der Regex-BäumeAussage B (n):
Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).
Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die
Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),
d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).
zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49
Induktion über Höhe der Regex-BäumeAussage B (n):
Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).
Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die
Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).
zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49
Induktion über Höhe der Regex-BäumeAussage B (n):
Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).
Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die
Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).
zeige: B (n + 1) gilt
d. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49
Induktion über Höhe der Regex-BäumeAussage B (n):
Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).
Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die
Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).
zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49
Skizze des Induktionsschri�s (1)sei R beliebiger Regex-Baum der Höhe n + 1:
*
R′
.
R′1 R′2
|
R′1R′2
Induktionsvoraussetzung: für alle Unterbäume gibt es T3G
Aus T3G für Unterbäume kann man T3G für ganzenRegex-Baum konstruieren.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 45 / 49
Skizze des Induktionsschri�s (1)sei R beliebiger Regex-Baum der Höhe n + 1:
*
R′
.
R′1 R′2
|
R′1R′2
Induktionsvoraussetzung: für alle Unterbäume gibt es T3G
Aus T3G für Unterbäume kann man T3G für ganzenRegex-Baum konstruieren.
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 45 / 49
Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2
nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉
es sei N1 ∩ N2 = ∅
keine Beschränkung der Allgemeinheitwichtig für die Konstruktion
wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2
Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)
ist T3G mit L(G ) = 〈R1|R2〉
Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49
Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2
nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉
es sei N1 ∩ N2 = ∅
keine Beschränkung der Allgemeinheitwichtig für die Konstruktion
wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2
Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)
ist T3G mit L(G ) = 〈R1|R2〉
Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49
Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2
nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉
es sei N1 ∩ N2 = ∅
keine Beschränkung der Allgemeinheitwichtig für die Konstruktion
wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2
Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)
ist T3G mit L(G ) = 〈R1|R2〉
Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49
Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2
nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉
es sei N1 ∩ N2 = ∅
keine Beschränkung der Allgemeinheitwichtig für die Konstruktion
wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2
Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)
ist T3G mit L(G ) = 〈R1|R2〉
Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49
Strukturelle Induktiongegeben «Gebilde» (eben reguläre Ausdrücke), und zwar
kleinste «atomare»/«elementare» Gebildebei RA: O/ und x für x ∈ A
Konstruktionsvorschri�(en), nach denen man aus kleinerenGebilden größere bauen kann
bei RA: R*, R1|R2, R1 · R2
Aufgabe:Zeige, dass alle Gebilde eine gewisse Eigenscha� haben.Strukturelle Induktion:
Induktionsanfang: zeige:alle «atomaren» Gebilde haben die Eigenscha�Induktionsschri�: zeige:«zusammengesetzten» Gebilde haben die Eigenscha�,weil alle Untergebilde die Eigenscha� haben
gleich welche Konstruktionsvorschri� benutzt wurde
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 49
Strukturelle Induktiongegeben «Gebilde» (eben reguläre Ausdrücke), und zwar
kleinste «atomare»/«elementare» Gebildebei RA: O/ und x für x ∈ A
Konstruktionsvorschri�(en), nach denen man aus kleinerenGebilden größere bauen kann
bei RA: R*, R1|R2, R1 · R2
Aufgabe:Zeige, dass alle Gebilde eine gewisse Eigenscha� haben.Strukturelle Induktion:
Induktionsanfang: zeige:alle «atomaren» Gebilde haben die Eigenscha�
Induktionsschri�: zeige:«zusammengesetzten» Gebilde haben die Eigenscha�,weil alle Untergebilde die Eigenscha� haben
gleich welche Konstruktionsvorschri� benutzt wurde
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 49
Strukturelle Induktiongegeben «Gebilde» (eben reguläre Ausdrücke), und zwar
kleinste «atomare»/«elementare» Gebildebei RA: O/ und x für x ∈ A
Konstruktionsvorschri�(en), nach denen man aus kleinerenGebilden größere bauen kann
bei RA: R*, R1|R2, R1 · R2
Aufgabe:Zeige, dass alle Gebilde eine gewisse Eigenscha� haben.Strukturelle Induktion:
Induktionsanfang: zeige:alle «atomaren» Gebilde haben die Eigenscha�Induktionsschri�: zeige:«zusammengesetzten» Gebilde haben die Eigenscha�,weil alle Untergebilde die Eigenscha� haben
gleich welche Konstruktionsvorschri� benutzt wurde
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 49
Was ist wichtigDas sollten Sie mitnehmen:
Definition rechtslineare Grammatiken
Das sollten Sie üben:rechtslineare Grammatiken konstruieren(zu gegebenem Akzeptor, regulären Ausdruck,formaler Sprache)strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 48 / 49
Zusammenfassungreguläre Ausdrücke
werden von diversen «Werkzeugen» unterstütztin manchen Programmiersprachen zur Textverarbeitungpraktisch
rechtslineare Grammatiken
strukturelle Induktion
GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 49 / 49