0% fanden dieses Dokument nützlich (0 Abstimmungen)
33 Ansichten119 Seiten

Folien Kapitel 1

Das Dokument behandelt die theoretische Informatik mit einem Fokus auf formale Sprachen, Automaten, Berechenbarkeit und NP-Vollständigkeit im Sommersemester 2023. Es definiert grundlegende Begriffe wie Alphabet, Wort und Sprache, und erläutert Operationen auf Wörtern und Sprachen, einschließlich Vereinigung, Durchschnitt, Differenz und Konkatenation. Zudem werden Beispiele für korrekte Computerprogramme, SVG- und JSON-Dateien gegeben, um die Konzepte zu veranschaulichen.

Hochgeladen von

Jefferson Souza
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
33 Ansichten119 Seiten

Folien Kapitel 1

Das Dokument behandelt die theoretische Informatik mit einem Fokus auf formale Sprachen, Automaten, Berechenbarkeit und NP-Vollständigkeit im Sommersemester 2023. Es definiert grundlegende Begriffe wie Alphabet, Wort und Sprache, und erläutert Operationen auf Wörtern und Sprachen, einschließlich Vereinigung, Durchschnitt, Differenz und Konkatenation. Zudem werden Beispiele für korrekte Computerprogramme, SVG- und JSON-Dateien gegeben, um die Konzepte zu veranschaulichen.

Hochgeladen von

Jefferson Souza
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
Sie sind auf Seite 1/ 119

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

Das könnte Ihnen auch gefallen