Informatik IV
Theoretische Informatik: Formale Sprachen und
Automaten, Berechenbarkeit und NP-Vollständigkeit
Sommersemester 2023
Dozent: Prof. Dr. Michael Leuschel
im Wechsel mit
Jun.-Prof. Dr. D. Baumeister
Prof. Dr. J. Rothe
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 1 / 75
Motivation Computerprogramme: Syntax und Semantik
Was ist ein korrektes Computerprogramm ?
#! /usr/bin/python
def Fib(x):
if x<2:
return 1
else:
return Fib(x-1)+Fib(x-2)
i = int(raw_input())
print "Fibonacci",i, "=", Fib(i)
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 2 / 75
Motivation Computerprogramme: Syntax und Semantik
Was ist ein korrektes Computerprogramm?
public static int fib(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 3 / 75
Motivation Computerprogramme: Syntax und Semantik
Was ist ein korrekte SVG Datei?
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg"
width="900" height="400"
viewBox="5 15 150 30" version="1.1">
<polygon id = "train_polygon"
points="0,0 100,0"
transform="translate(10,16.8)" />
</svg>
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 4 / 75
Motivation Computerprogramme: Syntax und Semantik
Was ist ein korrekte JSON Datei?
{
"description": "",
"transitionList": [
{
"name": "setup_constants",
"destState": {
"TrackElementNumber": "30",
"train_length": "2"
}
},
...
]
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 5 / 75
Motivation Computerprogramme: Syntax und Semantik
Andere Programme/Systeme
Was ist ein korrekter Ablauf bei einem Zugsteuerungssystem?
Bei einer Waschmaschine mit Aktionen: Open, Close, Lock,
Unlock, StartWash, StopWash?
OK: Close, Lock, StartWash, StopWash, Unlock, Open
Nicht OK: Close, StartWash
Nicht OK: Close, Lock, StartWash, Unlock, Open
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 6 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Ein Alphabet ist eine endliche, nichtleere Menge Σ von
Buchstaben (oder Symbolen).
Beispiele: Σ1 = {a, b, c}, Σ2 = {0, 1},
Σ3 = {Open, Close, Lock , Unlock , StartWash, StopWash}, oder
Σ4 = 0..255 (der ASCII Zeichensatz).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 7 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Ein Alphabet ist eine endliche, nichtleere Menge Σ von
Buchstaben (oder Symbolen).
Beispiele: Σ1 = {a, b, c}, Σ2 = {0, 1},
Σ3 = {Open, Close, Lock , Unlock , StartWash, StopWash}, oder
Σ4 = 0..255 (der ASCII Zeichensatz).
Ein Wort über Σ ist eine endliche Folge von Elementen aus Σ.
Beispiel: w1 = aabc und w2 = caba sind Wörter über Σ1 ;
w3 = 1110 und w4 = 0101 sind Wörter über Σ2 .
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 7 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Die Länge eines Wortes w (bezeichnet mit |w|) ist die Anzahl der
Symbole in w.
Beispiel: |010| = 3.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 8 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Die Länge eines Wortes w (bezeichnet mit |w|) ist die Anzahl der
Symbole in w.
Beispiel: |010| = 3.
Das leere Wort ist das eindeutig bestimmte Wort der Länge 0 und
wird mit dem griechischen Buchstaben λ („Lambda“) bezeichnet.
(Beachte: λ ist nicht als Symbol eines Alphabets erlaubt.)
Es gilt |λ| = 0.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 8 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Die Länge eines Wortes w (bezeichnet mit |w|) ist die Anzahl der
Symbole in w.
Beispiel: |010| = 3.
Das leere Wort ist das eindeutig bestimmte Wort der Länge 0 und
wird mit dem griechischen Buchstaben λ („Lambda“) bezeichnet.
(Beachte: λ ist nicht als Symbol eines Alphabets erlaubt.)
Es gilt |λ| = 0.
Die Menge aller Wörter über Σ bezeichnen wir mit Σ∗ .
Beispiel: {0, 1}∗ = {λ, 0, 1, 00, 01, 10, 11, 000, . . .}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 8 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Formale Definition von Σ∗ (|=)
Eine Folge kann als eine Funktion angesehen werden, und eine
Funktion als ein Spezialfall einer Relation.
Das Wort ab steht also für die Funktion die 1 auf a und 2 auf b abbildet.
Als Relation ergibt dies eine Menge mit zwei Paaren: {1 7→ a, 2 7→ b}.
Σ∗ = {x|∃n.(n ∈ N ∧ x ∈ 1..n → Σ)}
Wir haben
aabc ∈ {x|∃n.(n ∈ N ∧ x ∈ 1..n → Σ)} für n = 4.
λ ∈ {x|∃n.(n ∈ N ∧ x ∈ 1..n → Σ)} für n = 0
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 9 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Eine (formale) Sprache (über Σ) ist eine jede Teilmenge von Σ∗ .
Beispiel: L = {00, 10} ⊆ Σ∗ = {0, 1}∗ .
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 10 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Eine (formale) Sprache (über Σ) ist eine jede Teilmenge von Σ∗ .
Beispiel: L = {00, 10} ⊆ Σ∗ = {0, 1}∗ .
Die leere Sprache ist die Sprache, die keine Wörter enthält, und
wird mit ∅ bezeichnet. (Beachte: ∅ =
6 {λ}.)
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 10 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Alphabet, Wort und Sprache
Definition
Eine (formale) Sprache (über Σ) ist eine jede Teilmenge von Σ∗ .
Beispiel: L = {00, 10} ⊆ Σ∗ = {0, 1}∗ .
Die leere Sprache ist die Sprache, die keine Wörter enthält, und
wird mit ∅ bezeichnet. (Beachte: ∅ =
6 {λ}.)
Die Kardinalität einer Sprache L ist die Anzahl der Wörter von L
und wird mit kLk bezeichnet.
Beispiel: k{00, 10}k = 2.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 10 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Seien A und B beliebige Sprachen über dem Alphabet Σ, d.h.,
A, B ⊆ Σ∗ . Definiere
die Vereinigung von A und B durch
A ∪ B = {x ∈ Σ∗ x ∈ A ∨ x ∈ B};
Beispiel: {10, 1} ∪ {1, 0} = {10, 1, 0}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 11 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Seien A und B beliebige Sprachen über dem Alphabet Σ, d.h.,
A, B ⊆ Σ∗ . Definiere
die Vereinigung von A und B durch
A ∪ B = {x ∈ Σ∗ x ∈ A ∨ x ∈ B};
Beispiel: {10, 1} ∪ {1, 0} = {10, 1, 0}.
den Durchschnitt von A und B durch
A ∩ B = {x ∈ Σ∗ x ∈ A ∧ x ∈ B};
Beispiel: {10, 1} ∩ {1, 0} = {1}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 11 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
die Differenz von A und B durch
A − B = {x ∈ Σ∗ x ∈ A ∧ x 6∈ B};
Beispiel: {10, 1} − {1, 0} = {10}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 12 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
die Differenz von A und B durch
A − B = {x ∈ Σ∗ x ∈ A ∧ x 6∈ B};
Beispiel: {10, 1} − {1, 0} = {10}.
das Komplement von A durch
A = Σ∗ − A = {x ∈ Σ∗ x 6∈ A}.
Beispiel: {10, 1} = {0, 1}∗ − {10, 1} = {λ, 0, 00, 11, 01, 000, . . .}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 12 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Konkatenation (Verkettung) von Wörtern u, v ∈ Σ∗ ist ein Wort
uv ∈ Σ∗ , das wie folgt definiert ist:
Ist u = v = λ, so ist uv = vu = λ.
Ist v = λ, so ist uv = u.
Ist u = λ, so ist uv = v .
Sind u = u1 u2 · · · un und v = v1 v2 · · · vm mit ui , vi ∈ Σ, so ist
uv = u1 u2 · · · un v1 v2 · · · vm .
Beispiel: u = 01, v = 10, uv = 0110 und vu = 1001.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 13 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Konkatenation formal (|=)
Die Konkatenation vw zweier Wörter v und w kann formal definiert
werden als
vw = v ∪ {j, b|∃i.(i 7→ b ∈ w ∧ j = i + |v |)}
Für v = caba und w = aabc haben wir vw = {(1 7→ c), (2 7→ a), (3 7→
b), (4 7→ a), (5 7→ a), (6 7→ a), (7 7→ b), (8 7→ c)}, oder kompakt
geschrieben als cabaaabc.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 14 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Konkatenation (Verkettung) von Sprachen A und B (also von
Mengen von Wörtern) ist die Sprache
AB = {ab a ∈ A ∧ b ∈ B}.
Beispiel: {10, 1}{1, 0} = {101, 100, 11, 10}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 15 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Konkatenation (Verkettung) von Sprachen A und B (also von
Mengen von Wörtern) ist die Sprache
AB = {ab a ∈ A ∧ b ∈ B}.
Beispiel: {10, 1}{1, 0} = {101, 100, 11, 10}.
Die Iteration einer Sprache A ⊆ Σ∗ (die Kleene-Hülle von A) ist die
Sprache A∗ , die induktiv definiert ist durch
[
A0 = {λ}, An = AAn−1 , A∗ = An .
n≥0
Definiere die λ-freie Iteration von A durch A+ = n.
S
n≥1 A
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 15 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Beispiel:
{10, 1}0 = {λ},
{10, 1}1 = {10, 1},
{10, 1}2 = {10, 1}{10, 1} = {1010, 101, 110, 11},
{10, 1}3 = {10, 1}{10, 1}2 = {101010, . . .}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 16 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Beispiel:
{10, 1}0 = {λ},
{10, 1}1 = {10, 1},
{10, 1}2 = {10, 1}{10, 1} = {1010, 101, 110, 11},
{10, 1}3 = {10, 1}{10, 1}2 = {101010, . . .}.
Es gilt: A+ ∪ {λ} = A∗ .
Es gilt nicht: A+ = A∗ − {λ}. Warum nicht?
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 16 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Beispiel:
{10, 1}0 = {λ},
{10, 1}1 = {10, 1},
{10, 1}2 = {10, 1}{10, 1} = {1010, 101, 110, 11},
{10, 1}3 = {10, 1}{10, 1}2 = {101010, . . .}.
Es gilt: A+ ∪ {λ} = A∗ .
Es gilt nicht: A+ = A∗ − {λ}. Warum nicht?
Diese Aussage ist falsch, wenn λ ∈ A, z.B. für A = {λ}:
{λ}+ = {λ}, {λ}∗ = {λ}, A∗ − {λ} = ∅.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 16 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Spiegelbildoperation für ein Wort u = u1 u2 · · · un ∈ Σ∗ ist
definiert durch
sp(u) = un · · · u2 u1 .
Beispiel: sp(0100101) = 1010010.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 17 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Spiegelbildoperation für ein Wort u = u1 u2 · · · un ∈ Σ∗ ist
definiert durch
sp(u) = un · · · u2 u1 .
Beispiel: sp(0100101) = 1010010.
Die Spiegelung einer Sprache A ⊆ Σ∗ ist definiert durch
sp(A) = {sp(w) | w ∈ A}.
Beispiel: sp({100, 011}) = {001, 110}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 17 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Teilwortrelation auf Σ∗ ist definiert durch
u v v ⇐⇒ (∃v1 , v2 ∈ Σ∗ ) [v1 uv2 = v ].
Gilt u v v , so bezeichnen wir u als ein Teilwort (einen Infix) von v .
Beispiel: 100 v 1010010.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 18 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Operationen auf Wörtern und Sprachen
Definition
Die Teilwortrelation auf Σ∗ ist definiert durch
u v v ⇐⇒ (∃v1 , v2 ∈ Σ∗ ) [v1 uv2 = v ].
Gilt u v v , so bezeichnen wir u als ein Teilwort (einen Infix) von v .
Beispiel: 100 v 1010010.
Die Anfangswortrelation auf Σ∗ ist definiert durch
u va v ⇐⇒ (∃w ∈ Σ∗ ) [uw = v ].
Gilt u va v , so bezeichnen wir u als ein Anfangswort (einen
Präfix) von v .
Beispiel: 101 va 1010010.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 18 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Konkatenation auf Sprachen: Gruppe ?
Eine Gruppe ist ein Paar (G,*) bestehend aus einer Menge G und
einer inneren zweistelligen Verknüpfung * auf G, mit
Assoziativität:
∀(a, b, c).(a ∈ G ∧ b ∈ G ∧ c ∈ G ⇒ (a ∗ b) ∗ c = a ∗ (b ∗ c))
es gibt ein neutrales Element e so dass
∀a.(a ∈ G ⇒ a ∗ e = e ∗ a = a).
zu jedem a ∈ G gibt es ein inverses Element a−1 ∈ G so dass
a ∗ a−1 = e
Ist G=Σ∗ mit Verknüpfung eine Gruppe ?
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 19 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Konkatenation auf Sprachen: Gruppe ?
Eine Gruppe ist ein Paar (G,*) bestehend aus einer Menge G und
einer inneren zweistelligen Verknüpfung * auf G, mit
Assoziativität:
∀(a, b, c).(a ∈ G ∧ b ∈ G ∧ c ∈ G ⇒ (a ∗ b) ∗ c = a ∗ (b ∗ c))
es gibt ein neutrales Element e so dass
∀a.(a ∈ G ⇒ a ∗ e = e ∗ a = a).
zu jedem a ∈ G gibt es ein inverses Element a−1 ∈ G so dass
a ∗ a−1 = e
Ist G=Σ∗ mit Verknüpfung eine Gruppe ?
(AB)C = A(BC)
neutrales Element e = {λ}: A{λ} = {λ}A = A
aber es gibt für A 6= {λ} kein inverses Element
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 19 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik
Sprachen die uns interessieren:
Alle korrekten Java, Python, C, ... Programme
Die Eingabe-Ausgabepaare die ein Computerprogramm generiert
(siehe Fib.py)
Alle Tautologien oder erfüllbaren Formeln in Aussagenlogik,
Prädikatenlogik,...
Alle Programme die korrekt sind: keine Typfehler, keine
Laufzeitfehler, Terminierung
Alle Zeilen, Texte die ein gewisses Suchwort (oder kleine
Abänderungen davon) beinhalten
Andere Gebiete: Genomsequenzen
Wie beschreiben wir diese Sprachen ?
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 20 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - Python
Abbildung: Quelle: O’Reilly. Python Pocket Reference.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 21 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - Pascal
Abbildung: Quelle: TML Systems. TML Pascal: User’s guide and Reference
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 22 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - C
Abbildung: Quelle: Harbison, Steele Jr. C: A Reference Manual. Prentice-Hall.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 23 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - Java
Abbildung: Quelle: Gosling et al.: The Java(TM) Language Specification.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 24 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Formale Definition einer Formel in Aussagenlogik
Sei gegeben eine Menge A an Aussagen. Die Menge FA der Formeln
in Aussagenlogik über A ist die kleinste Menge and Formeln, so dass
A ⊆ FA (jede Aussage ist auch eine Formel),
wenn φ ∈ FA und ψ ∈ FA dann ist auch
(¬φ) ∈ FA ,
(φ ∧ ψ) ∈ FA ,
(φ ∨ ψ) ∈ FA ,
(φ ⇒ ψ) ∈ FA ,
(φ ⇔ ψ) ∈ FA .
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 25 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik
Definition
Eine Grammatik ist ein Quadrupel G = (Σ, N, S, P), wobei
Σ ein Alphabet (von so genannten Terminalsymbolen) ist,
N eine endliche Menge (von so genannten Nichtterminalen) mit
Σ ∩ N = ∅,
S ∈ N das Startsymbol und
P ⊆ (N ∪ Σ)+ × (N ∪ Σ)∗ die endliche Menge der Produktionen
(Regeln).
Dabei ist (N ∪ Σ)+ = (N ∪ Σ)∗ − {λ}.
Regeln (p, q) in P schreiben wir auch so:
p → q.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 26 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik
Für Grammatikregeln mit gleicher linker Seite A ∈ N schreiben wir
auch kurz
A → q1 | q2 | · · · | qn statt A → q1
A → q2
..
.
A → qn
(aus der so genannten BNF (Backus-Naur-Form)).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 27 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Ableitungsrelation, Sprache einer Grammatik
Definition
Sei G = (Σ, N, S, P) eine Grammatik, und seien u und v Wörter in
(N ∪ Σ)∗ .
Definiere die unmittelbare Ableitungsrelation bzgl. G so:
u `G v ⇐⇒ u = xpz, v = xqz,
wobei x, z ∈ (N ∪ Σ)∗ und p → q eine Regel in P ist.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 28 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Ableitungsrelation, Sprache einer Grammatik
Definition
Sei G = (Σ, N, S, P) eine Grammatik, und seien u und v Wörter in
(N ∪ Σ)∗ .
Definiere die unmittelbare Ableitungsrelation bzgl. G so:
u `G v ⇐⇒ u = xpz, v = xqz,
wobei x, z ∈ (N ∪ Σ)∗ und p → q eine Regel in P ist.
Durch n-malige Anwendung von `G erhalten wir `nG . Das heißt:
u `nG v ⇐⇒ u = x0 `G x1 `G · · · `G xn = v
für n ≥ 0 und für eine Folge von Wörtern x0 , x1 , . . . , xn ∈ (Σ ∪ N)∗ .
Insbesondere ist u `0G u.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 28 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G1 = (Σ1 , Γ1 , S1 , R1 ) die folgende Grammatik:
das terminale Alphabet ist Σ1 = {a, b},
das nichtterminale Alphabet ist Γ1 = {S1 } und
die Menge der Regeln ist gegeben durch
R1 = {S1 → aS1 b | λ}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 29 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G1 = (Σ1 , Γ1 , S1 , R1 ) die folgende Grammatik:
das terminale Alphabet ist Σ1 = {a, b},
das nichtterminale Alphabet ist Γ1 = {S1 } und
die Menge der Regeln ist gegeben durch
R1 = {S1 → aS1 b | λ}.
Eine Folge von Ableitungsschritten für G1 :
S1 `G1 aS1 b `G1 aaS1 bb `G1 aabb
S1 `1G1 aS1 b
S1 `2G1 aaS1 bb
S1 `3G1 aabb
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 29 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
R1 = {S1 → aS1 b | λ}
⊢ ⊢
aSb λ
⊢ ⊢
aaSbb ab
⊢ ⊢
aaaSbbb aabb
⊢ ⊢
aaaaSbbbb aaabbb
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 30 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
R1 = {S1 → aS1 b | λ}
S
⊢ ⊢
aSb λ
⊢ ⊢
aaSbb ab
⊢ ⊢
aaaSbbb aabb
⊢ ⊢
aaaaSbbbb aaabbb
⊢ ⊢
aaaaaSbbbbb aaaabbbb
⊢ ⊢
aaaaaaSbbbbbb aaaaabbbbb
⊢ ⊢
aaaaaaaSbbbbbbb aaaaaabbbbbb
⊢ ⊢
aaaaaaaaSbbbbbbbb aaaaaaabbbbbbb
⊢ ⊢
aaaaaaaaaSbbbbbbbbb aaaaaaaabbbbbbbb
⊢ ⊢
aaaaaaaaaaSbbbbbbbbbb aaaaaaaaabbbbbbbbb
⊢ ⊢
aaaaaaaaaaaSbbbbbbbbbbb aaaaaaaaaabbbbbbbbbb
⊢ ⊢
aaaaaaaaaaaaSbbbbbbbbbbbb aaaaaaaaaaabbbbbbbbbbb
⊢ ⊢
aaaaaaaaaaaaaSbbbbbbbbbbbbb aaaaaaaaaaaabbbbbbbbbbbb
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 31 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Ableitungsrelation, Sprache einer Grammatik
Definition
Die Folge (x0 , x1 , . . . , xn ), xi ∈ (Σ ∪ N)∗ , x0 = S und xn ∈ Σ∗ heißt
Ableitung von xn in G, falls x0 `G x1 `G · · · `G xn .
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 32 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Ableitungsrelation, Sprache einer Grammatik
Definition
Die Folge (x0 , x1 , . . . , xn ), xi ∈ (Σ ∪ N)∗ , x0 = S und xn ∈ Σ∗ heißt
Ableitung von xn in G, falls x0 `G x1 `G · · · `G xn .
Definiere `∗G = n≥0 `nG . Man kann zeigen, dass `∗G die reflexive
S
und transitive Hülle von `G ist, d.h. die kleinste binäre Relation,
die reflexiv und transitiv ist und `G umfasst.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 32 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Ableitungsrelation, Sprache einer Grammatik
Definition
Die Folge (x0 , x1 , . . . , xn ), xi ∈ (Σ ∪ N)∗ , x0 = S und xn ∈ Σ∗ heißt
Ableitung von xn in G, falls x0 `G x1 `G · · · `G xn .
Definiere `∗G = n≥0 `nG . Man kann zeigen, dass `∗G die reflexive
S
und transitive Hülle von `G ist, d.h. die kleinste binäre Relation,
die reflexiv und transitiv ist und `G umfasst.
Die von der Grammatik G erzeugte Sprache ist definiert als
L(G) = {w ∈ Σ∗ S `∗G w}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 32 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Ableitungsrelation, Sprache einer Grammatik
Definition
Die Folge (x0 , x1 , . . . , xn ), xi ∈ (Σ ∪ N)∗ , x0 = S und xn ∈ Σ∗ heißt
Ableitung von xn in G, falls x0 `G x1 `G · · · `G xn .
Definiere `∗G = n≥0 `nG . Man kann zeigen, dass `∗G die reflexive
S
und transitive Hülle von `G ist, d.h. die kleinste binäre Relation,
die reflexiv und transitiv ist und `G umfasst.
Die von der Grammatik G erzeugte Sprache ist definiert als
L(G) = {w ∈ Σ∗ S `∗G w}.
Zwei Grammatiken G1 und G2 heißen äquivalent, falls
L(G1 ) = L(G2 ).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 32 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G1 = (Σ1 , Γ1 , S1 , R1 ) die folgende Grammatik:
das terminale Alphabet ist Σ1 = {a, b},
das nichtterminale Alphabet ist Γ1 = {S1 } und
die Menge der Regeln ist gegeben durch
R1 = {S1 → aS1 b | λ}.
Eine Ableitung für G1 :
S1 `G1 aS1 b `G1 aaS1 bb `G1 aabb ⇒ aabb ∈ L(G1 ).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 33 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G1 = (Σ1 , Γ1 , S1 , R1 ) die folgende Grammatik:
das terminale Alphabet ist Σ1 = {a, b},
das nichtterminale Alphabet ist Γ1 = {S1 } und
die Menge der Regeln ist gegeben durch
R1 = {S1 → aS1 b | λ}.
Eine Ableitung für G1 :
S1 `G1 aS1 b `G1 aaS1 bb `G1 aabb ⇒ aabb ∈ L(G1 ).
Offenbar erzeugt G1 die Sprache L(G1 ) = {an bn n ≥ 0}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 33 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G20 = (Σ2 , Γ2 , S20 , R20 ) die folgende Grammatik:
das terminale Alphabet ist Σ2 = {a, b, c},
das nichtterminale Alphabet ist Γ2 = {S20 , B, C} und
die Menge der Regeln ist gegeben durch
R20 = { S20 → aB,
B → bC,
C → cS20 |c }.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 34 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
R20 = {S20 → aB, B → bC, C → cS20 , C → c}
aB
abC
⊢ ⊢
abcS abc
abcaB
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 35 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
R20 = {S2 → aB, B → bC, C → cS20 , C → c}
S
aB
abC
⊢ ⊢
abcS abc
abcaB
abcabC
⊢ ⊢
abcabcS abcabc
abcabcaB
...
Offenbar erzeugt G20 die Sprache L(G20 ) = {(abc)n n ≥ 1}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 36 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G2 = (Σ2 , Γ2 , S2 , R2 ) die folgende Grammatik:
das terminale Alphabet ist Σ2 = {a, b, c},
das nichtterminale Alphabet ist Γ2 = {S2 , B, C} und
die Menge der Regeln ist gegeben durch
R2 = { S2 → aS2 BC | aBC,
CB → BC,
aB → ab, bB → bb, bC → bc, cC → cc }.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 37 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
R2 = {S2 → aS2 BC, S2 → aBC, CB → BC, aB → ab, bB → bb, bC → bc, cC → cc}
⊢ ⊢
aSBC aBC
⊢ ⊢ ⊢
aaBCBC aaSBCBC abC
⊢ ⊢ ⊢ ⊢ ⊢ ⊢
aaBBCC aabCBC aaaSBCBCBC aaSBBCC aaaBCBCBC abc
⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢
aabBCC aabcBC aaaaSBCBCBCBC aaaSBBCCBC aaaSBCBBCC aaaaBCBCBCBC aaaBCBBCC aaaBBCCBC aaabCBCBC
⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢ ⊢
aabbCC aaaaaSBCBCBCBCBC aaaaaBCBCBCBCBC aaaaSBBCCBCBC aaaaSBCBBCCBC aaaaSBCBCBBCC aaaSBBCBCC aaaaBCBBCCBC aaaaBCBCBBCC aaaabCBCBCBC aaaaBBCCBCBC aaaBBCBCC aaabCBBCC aaabBCCBC aaabcBCBC
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 38 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Eine Ableitung für G2 :
S2 `G2 aS2 BC `G2 aaS2 BCBC `G2 aaaBCBCBC
` G2 aaaBBCCBC `G2 aaaBBCBCC `G2 aaaBBBCCC
` G2 aaabBBCCC `G2 aaabbBCCC `G2 aaabbbCCC
` G2 aaabbbcCC `G2 aaabbbccC `G2 aaabbbccc
⇒ aaabbbccc ∈ L(G2 ).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 39 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Eine Ableitung für G2 :
S2 `G2 aS2 BC `G2 aaS2 BCBC `G2 aaaBCBCBC
` G2 aaaBBCCBC `G2 aaaBBCBCC `G2 aaaBBBCCC
` G2 aaabBBCCC `G2 aaabbBCCC `G2 aaabbbCCC
` G2 aaabbbcCC `G2 aaabbbccC `G2 aaabbbccc
⇒ aaabbbccc ∈ L(G2 ).
Die von G2 erzeugte Sprache ist
L(G2 ) = {an bn c n n ≥ 1}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 39 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Sei G3 = (Σ3 , Γ3 , S3 , R3 ) die folgende Grammatik:
das terminale Alphabet ist Σ3 = {∗, +, (, ), a},
das nichtterminale Alphabet ist Γ3 = {S3 } und
die Menge der Regeln ist gegeben durch
R3 = {S3 → S3 + S3 | S3 ∗ S3 | (S3 ) | a}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 40 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Eine Ableitung für G3 :
S3 `G3 S3 + S3 ` G3 S3 ∗ S3 + S3
`G3 (S3 ) ∗ S3 + S3 `G3 (S3 + S3 ) ∗ S3 + S3
`G3 ··· `G3 (a + a) ∗ a + a
⇒ (a + a) ∗ a + a ∈ L(G3 ).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 41 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Beispiel: Eine Ableitung für G3 :
S3 `G3 S3 + S3 ` G3 S3 ∗ S3 + S3
`G3 (S3 ) ∗ S3 + S3 `G3 (S3 + S3 ) ∗ S3 + S3
`G3 ··· `G3 (a + a) ∗ a + a
⇒ (a + a) ∗ a + a ∈ L(G3 ).
G3 erzeugt die Sprache aller verschachtelten Klammerausdrücke mit
den Operationen + und ∗ und einem Zeichen a.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 41 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Der Prozess des Ableitens von Wörtern ist inhärent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 42 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Der Prozess des Ableitens von Wörtern ist inhärent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Verschiedene Grammatiken können dieselbe Sprache erzeugen.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 42 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Der Prozess des Ableitens von Wörtern ist inhärent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Verschiedene Grammatiken können dieselbe Sprache erzeugen.
Tatsächlich hat jede durch eine Grammatik definierbare Sprache
unendlich viele sie erzeugende Grammatiken.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 42 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Der Prozess des Ableitens von Wörtern ist inhärent
nichtdeterministisch, denn im Allgemeinen kann mehr als eine
Regel in einem Ableitungsschritt angewandt werden.
Verschiedene Grammatiken können dieselbe Sprache erzeugen.
Tatsächlich hat jede durch eine Grammatik definierbare Sprache
unendlich viele sie erzeugende Grammatiken.
Das heißt, eine Grammatik ist ein syntaktisches Objekt, das ein
semantisches Objekt erzeugt, nämlich ihre Sprache.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 42 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Es gibt “natürlich” auch Grammatiken für natürliche Sprachen
Hier eine Grammatik für eine ganz kleine Untermenge der
deutschen Sprache:
Σ = {a, b, c, . . . , A, B, C, . . . , −}, N = {S, P, V, O}.
S→P VO
P → Er | Sie | Es
V → angelt | baut | isst
O → Fische | Schiffe | Himbeeren
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 43 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Franz Kafka. Auf der Galerie. Satz 1 von 2:
Wenn irgendeine hinfällige, lungensüchtige Kunstreiterin in der Manege
auf schwankendem Pferd vor einem unermüdlichen Publikum vom
peitschenschwingenden erbarmungslosen Chef monatelang ohne
Unterbrechung im Kreise rundum getrieben würde, auf dem Pferde
schwirrend, Küsse werfend, in der Taille sich wiegend, und wenn dieses
Spiel unter dem nichtaussetzenden Brausen des Orchesters und der
Ventilatoren in die immerfort weiter sich öffnende graue Zukunft sich
fortsetzte, begleitet vom vergehenden und neu anschwellenden
Beifallsklatschen der Hände, die eigentlich Dampfhämmer sind ?
vielleicht eilte dann ein junger Galeriebesucher die lange Treppe durch
alle Ränge hinab, stürzte in die Manege, rief das: Halt! durch die
Fanfaren des immer sich anpassenden Orchesters.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 44 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Marcel Proust. À l’ombre des jeunes filles en fleurs. Erster Satz:
Ma mère, quand il fut question d’avoir pour la première fois M. de
Norpois à dîner, ayant exprimé le regret que le Professeur Cottard fût en
voyage et qu’elle-même eût entièrement cessé de fréquenter Swann, car
l’un et l’autre eussent sans doute intéressé l’ancien Ambassadeur, mon
père répondit qu’un convive éminent, un savant illustre, comme Cottard,
ne pouvait jamais mal faire dans un dîner, mais que Swann, avec son
ostentation, avec sa manière de crier sur les toits ses moindres
relations, était un vulgaire esbrouffeur que le Marquis de Norpois eût
sans doute trouvé selon son expression, «puant».
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 45 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Die Struktur und benötigte Grammatik bei Programmiersprachen
ist zum Glück einfacher.
Es gibt viele unterschiedliche Notationen für Grammatiken.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 46 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Grammatik, Ableitung, erzeugte Sprache
Bemerkung:
Die Struktur und benötigte Grammatik bei Programmiersprachen
ist zum Glück einfacher.
Es gibt viele unterschiedliche Notationen für Grammatiken.
Aufgabe: Schauen wir uns die Handbücher der
Programmiersprachen noch einmal an. Was sind die Terminale,
Nichtterminale, Regeln? Gibt es Unterschiede?
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 46 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - Python
(Wiederholug)
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 47 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - Pascal
(Wiederholug)
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 48 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - C (Wiederholug)
Abbildung: Quelle: Harbison, Steele Jr. C: A Reference Manual. Prentice-Hall.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 49 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Beschreibung aus dem Handbuch - Java
(Wiederholug)
Abbildung: Quelle: Gosling et al.: The Java(TM) Language Specification.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 50 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Wiederholung: Grammatik
Definition
Eine Grammatik ist ein Quadrupel G = (Σ, N, S, P), wobei
Σ ein Alphabet von Terminalsymbolen ist,
N eine endliche Menge von Nichtterminalen mit Σ ∩ N = ∅,
S ∈ N das Startsymbol und
P ⊆ (N ∪ Σ)+ × (N ∪ Σ)∗ die endliche Menge der Produktionen
(Regeln).
`G ist die unmittelbare Ableitungsrelation (einmalige Anwendung einer
Regel aus P).
Die von der Grammatik G erzeugte Sprache ist definiert als
L(G) = {w ∈ Σ∗ S `∗G w}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 51 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Wiederholung: Beispiel Grammatik
Beispiel: G = (Σ, N, S, P) mit Σ = {a, x, y , z}, N = {S, B, C, V } und
den Regeln P =
{S → aBV , aB → x, aC → y , BV → C, BV → BVz, xV → x}.
Wir haben zB x ∈ L(G) und yz ∈ L(G) und xz ∈ L(G).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 52 / 75
Grundbegriffe Wörter, Sprachen und Grammatiken
Wiederholung: Beispiel Grammatik
Beispiel: G = (Σ, N, S, P) mit Σ = {a, x, y , z}, N = {S, B, C, V } und
den Regeln P =
{S → aBV , aB → x, aC → y , BV → C, BV → BVz, xV → x}.
Wir haben zB x ∈ L(G) und yz ∈ L(G) und xz ∈ L(G).
S ` aBV ` xV ` x
S ` aBV ` aBVz ` aCz ` yz
S ` aBV ` aBVz ` xVz ` xz
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 52 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Definition
G = (Σ, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschränkungen
unterliegt.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 53 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Definition
G = (Σ, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschränkungen
unterliegt.
G ist Typ-1-Grammatik (bzw. kontextsensitiv bzw. nichtverkürzend
oder monoton), falls für alle Regeln p → q in P gilt: |p| ≤ |q|.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 53 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Definition
G = (Σ, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschränkungen
unterliegt.
G ist Typ-1-Grammatik (bzw. kontextsensitiv bzw. nichtverkürzend
oder monoton), falls für alle Regeln p → q in P gilt: |p| ≤ |q|.
Eine Typ-1-Grammatik G ist vom Typ 2 (bzw. kontextfrei), falls für
alle Regeln p → q in P gilt: p ∈ N.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 53 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Definition
G = (Σ, N, S, P) sei eine Grammatik.
G ist Typ-0-Grammatik, falls P keinerlei Einschränkungen
unterliegt.
G ist Typ-1-Grammatik (bzw. kontextsensitiv bzw. nichtverkürzend
oder monoton), falls für alle Regeln p → q in P gilt: |p| ≤ |q|.
Eine Typ-1-Grammatik G ist vom Typ 2 (bzw. kontextfrei), falls für
alle Regeln p → q in P gilt: p ∈ N.
Eine Typ-2-Grammatik G ist vom Typ 3 (bzw. regulär bzw.
rechtslinear ), falls für alle Regeln p → q in P gilt: p ∈ N und
q ∈ Σ ∪ ΣN.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 53 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Definition
Eine Sprache A ⊆ Σ∗ ist genau dann vom Typ i ∈ {0, 1, 2, 3},
wenn es eine Typ-i-Grammatik G gibt mit L(G) = A.
Die Chomsky-Hierarchie besteht aus den vier Sprachklassen:
Li = {L(G) G ist Typ-i-Grammatik},
wobei i ∈ {0, 1, 2, 3}. Übliche Bezeichnungen:
L0 ist die Klasse aller Sprachen, die durch eine Grammatik erzeugt
werden können;
L1 = CS ist die Klasse der kontextsensitiven Sprachen;
L2 = CF ist die Klasse der kontextfreien Sprachen;
L3 = REG ist die Klasse der regulären Sprachen.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 54 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Fakt
REG ⊆ CF ⊆ CS ⊆ L0 .
Alle Sprachen
Typ-0-Sprachen
Typ-1-Sprachen (CS)
Typ-2-Sprachen (CF)
Typ-3-Sprachen (REG)
Abbildung: Die Chomsky-Hierarchie
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 55 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Beispiel:
Offensichtlich sind die Grammatiken G2 mit
R2 = {S2 → aS2 BC, S2 → aBC, CB → BC, aB → ab, bB →
bb, bC → bc, cC → cc} und G3 mit
R3 = {S3 → S3 + S3 | S3 ∗ S3 | (S3 ) | a} aus dem vorigen Beispiel
kontextsensitiv.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 56 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Beispiel:
Offensichtlich sind die Grammatiken G2 mit
R2 = {S2 → aS2 BC, S2 → aBC, CB → BC, aB → ab, bB →
bb, bC → bc, cC → cc} und G3 mit
R3 = {S3 → S3 + S3 | S3 ∗ S3 | (S3 ) | a} aus dem vorigen Beispiel
kontextsensitiv.
Offensichtlich ist die Grammatik G3 aus dem vorigen Beispiel
sogar kontextfrei.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 56 / 75
Grundbegriffe Die Chomsky-Hierarchie
Chomsky-Hierarchie
Beispiel:
Die Grammatik G1 mit R1 = {S1 → aS1 b | λ} enthält die Regel
S1 → λ
und ist wegen |S1 | = 1 > 0 = |λ| nach Definition nicht
kontextsensitiv (vgl. „Sonderregelung für das leere Wort“).
Da G1 eine Grammatik ist, ist G1 eine Typ-0-Grammatik.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 57 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Um das leere Wort in Sprachen von Typ-i-Grammatiken für
i ∈ {1, 2, 3} aufzunehmen, treffen wir die folgende Vereinbarung:
(a) Die Regel
S→λ
ist als einzige verkürzende Regel für Grammatiken vom Typ 1, 2, 3
zugelassen.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 58 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Um das leere Wort in Sprachen von Typ-i-Grammatiken für
i ∈ {1, 2, 3} aufzunehmen, treffen wir die folgende Vereinbarung:
(a) Die Regel
S→λ
ist als einzige verkürzende Regel für Grammatiken vom Typ 1, 2, 3
zugelassen.
(b) Tritt die Regel S → λ auf, so darf S auf keiner rechten Seite einer
Regel vorkommen.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 58 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Dies ist keine Beschränkung der Allgemeinheit, denn:
Gibt es in P Regeln mit S auf der rechten Seite, so verändern wir die
Regelmenge P zur neuen Regelmenge P 0 wie folgt:
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 59 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Dies ist keine Beschränkung der Allgemeinheit, denn:
Gibt es in P Regeln mit S auf der rechten Seite, so verändern wir die
Regelmenge P zur neuen Regelmenge P 0 wie folgt:
1 In allen Regeln der Form S → u aus P mit u ∈ (N ∪ Σ)∗ wird jedes
Vorkommen von S in u durch ein neues Nichtterminal S 0 ersetzt.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 59 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Dies ist keine Beschränkung der Allgemeinheit, denn:
Gibt es in P Regeln mit S auf der rechten Seite, so verändern wir die
Regelmenge P zur neuen Regelmenge P 0 wie folgt:
1 In allen Regeln der Form S → u aus P mit u ∈ (N ∪ Σ)∗ wird jedes
Vorkommen von S in u durch ein neues Nichtterminal S 0 ersetzt.
2 Zusätzlich enthält P 0 alle Regeln aus P, mit S ersetzt durch S 0 .
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 59 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Dies ist keine Beschränkung der Allgemeinheit, denn:
Gibt es in P Regeln mit S auf der rechten Seite, so verändern wir die
Regelmenge P zur neuen Regelmenge P 0 wie folgt:
1 In allen Regeln der Form S → u aus P mit u ∈ (N ∪ Σ)∗ wird jedes
Vorkommen von S in u durch ein neues Nichtterminal S 0 ersetzt.
2 Zusätzlich enthält P 0 alle Regeln aus P, mit S ersetzt durch S 0 .
3 Die Regel S → λ wird hinzugefügt.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 59 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Dies ist keine Beschränkung der Allgemeinheit, denn:
Gibt es in P Regeln mit S auf der rechten Seite, so verändern wir die
Regelmenge P zur neuen Regelmenge P 0 wie folgt:
1 In allen Regeln der Form S → u aus P mit u ∈ (N ∪ Σ)∗ wird jedes
Vorkommen von S in u durch ein neues Nichtterminal S 0 ersetzt.
2 Zusätzlich enthält P 0 alle Regeln aus P, mit S ersetzt durch S 0 .
3 Die Regel S → λ wird hinzugefügt.
Die so modifizierte Grammatik G0 = (Σ, N ∪ {S 0 }, S, P 0 ) ist (bis auf
S → λ) vom selben Typ wie G und erfüllt L(G0 ) = L(G) ∪ {λ}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 59 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Beispiel: Wir betrachten die Grammatik G = (Σ, N, S, P) mit
das terminale Alphabet ist Σ = {a, b},
das nichtterminale Alphabet ist N = {S} und
die Menge der Regeln ist gegeben durch
P = {S → aSb | ab}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 60 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Beispiel: Wir betrachten die Grammatik G = (Σ, N, S, P) mit
das terminale Alphabet ist Σ = {a, b},
das nichtterminale Alphabet ist N = {S} und
die Menge der Regeln ist gegeben durch
P = {S → aSb | ab}.
Man sieht leicht, dass G kontextfrei ist und die Sprache
L = {an bn n ≥ 1} erzeugt, d.h., L(G) = L.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 60 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Beispiel: Wir betrachten die Grammatik G = (Σ, N, S, P) mit
das terminale Alphabet ist Σ = {a, b},
das nichtterminale Alphabet ist N = {S} und
die Menge der Regeln ist gegeben durch
P = {S → aSb | ab}.
Man sieht leicht, dass G kontextfrei ist und die Sprache
L = {an bn n ≥ 1} erzeugt, d.h., L(G) = L.
Wir modifizieren die Grammatik G nun gemäß der Sonderregelung für
das leere Wort, um eine kontextfreie Grammatik für die Sprache
{an bn n ≥ 0} = L ∪ {λ}
zu gewinnen.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 60 / 75
Grundbegriffe Die Chomsky-Hierarchie
Sonderregelung für das leere Wort
Beispiel: Nach obiger Konstruktion erhalten wir eine kontextfreie
Grammatik G0 = (Σ, {S, S 0 }, S, P 0 ) mit
P 0 = { S → aS 0 b | ab gemäß 1.)
S 0 → aS 0 b | ab gemäß 2.)
S→λ } gemäß 3.)
und L(G0 ) = L(G) ∪ {λ}.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 61 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutigkeit: Finden einer Definition 1
Gegeben Σ = {a, b} welche dieser Grammatiken sind eindeutig und
warum?
R1 = {S → aSb | ab}
R2 = {S → aSb | ab | aabb}
R3 = {S → ASB | ab, A → a, B → b}
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 62 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutigkeit: Finden einer Definition 1
R1 = {S → aSb | ab} Es gibt nur eine Ableitung für das Wort aabb:
S ` aSb ` aabb
R2 = {S → aSb | ab | aabb} Es gibt zwei Ableitungen für das Wort
aabb:
1 S ` aSb ` aabb
2 S ` aabb
R3 = {S → ASB | ab, A → a, B → b} Es gibt sechs Ableitungen für
das Wort aabb:
1 S ` ASB ` aSB ` aabB ` aabb
2 S ` ASB ` aSB ` aSb ` aabb
3 S ` ASB ` AabB ` aabB ` aabb
4 S ` ASB ` AabB ` Aabb ` aabb
5 S ` ASB ` ASb ` aSb ` aabb
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 63 / 75
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 64 / 75
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (Σ, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G · · · `G wn = w eine Ableitung von w ∈ L(G).
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 64 / 75
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (Σ, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G · · · `G wn = w eine Ableitung von w ∈ L(G).
Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das
Startsymbol S.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 64 / 75
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (Σ, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G · · · `G wn = w eine Ableitung von w ∈ L(G).
Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das
Startsymbol S.
Untere Etagen: Wird wegen der Regel A → z im i-ten
Ableitungsschritt (wi−1 `G wi ) das Nichtterminal A in wi−1 durch
das Teilwort z von wi ersetzt, so hat der entsprechende Knoten A
im Syntaxbaum |z| Söhne, die v.l.n.r. mit den Symbolen aus z
beschriftet sind. Falls z = λ wird ein Sohn generiert und mit λ
beschriftet.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 64 / 75
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3
anschaulich darzustellen, verwenden wir einen wie folgt definierten
Syntaxbaum.
Sei G = (Σ, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei
S = w0 `G w1 `G · · · `G wn = w eine Ableitung von w ∈ L(G).
Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das
Startsymbol S.
Untere Etagen: Wird wegen der Regel A → z im i-ten
Ableitungsschritt (wi−1 `G wi ) das Nichtterminal A in wi−1 durch
das Teilwort z von wi ersetzt, so hat der entsprechende Knoten A
im Syntaxbaum |z| Söhne, die v.l.n.r. mit den Symbolen aus z
beschriftet sind. Falls z = λ wird ein Sohn generiert und mit λ
beschriftet.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 64 / 75
Grundbegriffe Die Chomsky-Hierarchie
Beispiel 1: Syntaxbaum
Die Blätter eines Syntaxbaumes für eine Ableitung von w ergeben von
links nach rechts gelesen w.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 65 / 75
Grundbegriffe Die Chomsky-Hierarchie
Beispiel 1: Syntaxbaum
Die Blätter eines Syntaxbaumes für eine Ableitung von w ergeben von
links nach rechts gelesen w.
R1 = {S → aSb | ab} Es gibt nur eine Ableitung für das Wort ab:
S ` aSb ` ab dem dieser Syntaxbaum entspricht:
S
a S b
a b
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 65 / 75
Grundbegriffe Die Chomsky-Hierarchie
Beispiel 2: Syntaxbaum
R2 = {S → aSb | ab | aabb} Es gibt zwei Ableitungen für das Wort
aabb:
1 S ` aSb ` aabb
2 S ` aabb
Hier gibt es zwei unterschiedliche Syntaxbäume:
S S
a S b a a b b
a b
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 66 / 75
Grundbegriffe Die Chomsky-Hierarchie
Beispiel: Syntaxbaum
R3 = {S → ASB | ab, A → a, B → b} Es gibt 6 Ableitungen für aabb:
1 S ` ASB ` aSB ` aabB ` aabb
2 S ` ASB ` aSB ` aSb ` aabb
3 S ` ASB ` AabB ` aabB ` aabb
4 S ` ASB ` AabB ` Aabb ` aabb
5 S ` ASB ` ASb ` aSb ` aabb
6 S ` ASB ` ASb ` Aabb ` aabb
S
A S B
a a b b
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 67 / 75
Grundbegriffe Die Chomsky-Hierarchie
Beispiel: Syntaxbaum
R3 = {S → ASB | ab, A → a, B → b} Eine Ableitung kann als Folge
von partiellen Syntaxbäumen dargestellt werden, der letzte Baum ist
der Syntaxbaum:
1 S ` ASB ` aSB ` aabB ` aabb
S S S S S
A S B A S B A S B A S B
a a a b a a b b
Alle sechs Ableitungen erzeugen den selben finalen Syntaxbaum.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 68 / 75
Grundbegriffe Die Chomsky-Hierarchie
Syntaxbaum
Beispiel: S3
S3 + S3
S3 ∗ S3 a
( S3 ) a
S3 + S3
a a
Abbildung: Syntaxbaum für die Ableitung des Wortes (a + a) ∗ a + a in der
Typ 2-Grammatik G3 mit R3 = {S3 → S3 + S3 | S3 ∗ S3 | (S3 ) | a} von oben
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 69 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutige Grammatik
Definition
Eine Grammatik G heißt mehrdeutig, falls es ein Wort w ∈ L(G)
gibt, das zwei verschiedene Syntaxbäume hat.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 70 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutige Grammatik
Definition
Eine Grammatik G heißt mehrdeutig, falls es ein Wort w ∈ L(G)
gibt, das zwei verschiedene Syntaxbäume hat.
Eine Sprache A heißt inhärent mehrdeutig, falls jede Grammatik G
mit A = L(G) mehrdeutig ist.
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 70 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutige Grammatik
Beispiel:
S3
S3 ∗ S3
( S3 ) S3 + S3
S3 + S3 a a
a a
Abbildung: Ein weiterer Syntaxbaum für die Ableitung des Wortes
(a + a) ∗ a + a in der Typ 2-Grammatik G3 aus dem vorigen Beispiel
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 71 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutigkeit für Kontextsensitive Sprachen
Die Konzepte wie Linksableitung, Syntaxbaum und damit die Definition
von Mehrdeutigkeit lassen sich nicht so auf ksG übertragen.
Beispiel: Gegeben Σ = {a, x, y , z} und den Regeln P =
{S → aBV , aB → x, aC → y , BV → C, BV → BVz, xV → x}
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 72 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutigkeit für Kontextsensitive Sprachen
Die Konzepte wie Linksableitung, Syntaxbaum und damit die Definition
von Mehrdeutigkeit lassen sich nicht so auf ksG übertragen.
Beispiel: Gegeben Σ = {a, x, y , z} und den Regeln P =
{S → aBV , aB → x, aC → y , BV → C, BV → BVz, xV → x}
S ` aBV ` xV ` x geht mit einer Linksableitung, aber
S ` aBV ` aBVz ` aCz ` yz geht nur wenn man aB überspringt und
gar nicht anwendet
S ` aBV ` aBVz ` xVz ` xz hier muss man aB überspringen, und
später anwenden
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 72 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutigkeit in natürlicher Sprache
Quelle: http://www.slideshare.net/blessedkkr/syntax-course
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 73 / 75
Grundbegriffe Die Chomsky-Hierarchie
Mehrdeutigkeit in natürlicher Sprache
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 74 / 75
Grundbegriffe Die Chomsky-Hierarchie
Wichtige Konzepte vm Foliensatz 1:
Formale Sprachen
Konkatenation von Sprachen, Kleene Hülle
Grammatiken
Ableitungsrelation, formale Definition von L(G)
Chomsky Hierarchie: Typ 0, 1, 2, 3 Sprachen
Regelung für das leere Wort
Mehrdeutigkeit, Syntaxbäume für kfG
Rothe & Leuschel (HHU Düsseldorf) Informatik IV 75 / 75