new formale grundlagen der informatik - michael gamer · 2020. 2. 13. · xay → aaxxaa, xax →...

78
Michael Gamer / 2015 Formale Grundlagen der Informatik 1

Upload: others

Post on 17-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer / 2015

Formale Grundlagen der Informatik

1

Page 2: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Reguläre Ausdrücke

Kommen in der Praxis immer dann vor, wenn standardisierte Eingaben erforderlich sind: Telefonnummern: +Land (0) Ort Anschluß Dateinamen: (A-Z, a-z)+(A-Z, a-z, 0-9)*.(A-Z, a-z, 0-9)* Informatik: ‣ (0|1)*00 :

• alle durch vier teilbaren Dualzahlen. ‣ (A|…|Z|a|…|z)+(A|…|Z|a|…|z|0|…9)*.pdf

• Alle PDF-Dokumente

2

Page 3: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Reguläre Ausdrücke - Definition

Reguläre Ausdrücke werden durch folgende Vereinbarungen definiert:

1.∅ ist ein regulärer Ausdruck und L(∅ ) = ∅

2.Für a ∈ Σ ∪ {ε} ist a ein regulärer Ausdruck mit L(a) = {a}

3.Sind X und Y reguläre Ausdrücke so sind auch

X|Y, XY, X*

reguläre Ausdrücke mit

L(X|Y) = L(X)∪L(Y), L(XY) = L(X)L(Y) und L(X*) = L(X)*

Schreibweise: Statt X X* wird kurz X+ geschrieben

3

Page 4: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Reguläre Ausdrücke Beispiel (1)

Ein regulärer Ausdruck für ganze Zahlen: 0 | (ε | -)(1|2|3|4|5|6|7|8|9) (0|1|2|3|4|5|6|7|8|9)* Hier ist das Vorzeichen „+“ nicht zulässig, soll dies der Fall sein, so muß die Definition wie folgt abgefaßt werden: 0 | (ε | -|+)(1|2|3|4|5|6|7|8|9) (0|1|2|3|4|5|6|7|8|9)* Achtung: Mit regulären Ausdrücken ist folgend Festlegung von Kreditkartennummern nicht zulässig: (0|1|2|3|4|5|6|7|8|9)4 - (0|1|2|3|4|5|6|7|8|9)4 - (0|1|2|3|4|5|6|7|8|9)4 - (0|1|2|3|4|5|6|7|8|9)4 Da als Exponent nur der „*“ und das „+“zugelassen sind.

4

Page 5: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (2)

Gesucht ist ein regulärer Ausdruck α über dem Alphabet {0,1} der die Sprache beschreibt, die aus einer Zeichenketten mit einer abwechselnden Folge von Nullen und Einsen besteht Erster Ansatz: ‣ α = (01)* Dies reicht nicht hin: da z.B. 1010 auch

Element der Sprache ist Weitere Möglichkeiten: ‣ Das erste Zeichen ist eine 1 ‣ Die Folge beginnt und endet mit 0 resp. 1

5

Page 6: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (3)

Ein Lösungsansatz ist mehrere reguläre Ausdrücke zu bilden und dann zu einem Ausdruck zu vereinen. ‣ (01)* : Alle Zeichenketten der From 010101… ‣ (10)* : Alle Zeichenketten der From 101010… ‣ 0(10)*: Zeichenketten die mit 0 beginnen und

enden ‣ 1(01)*: Zeichenketten die mit 1 beginnen und

enden

6

Also: α = (01)*+(10)*+0(10)*+1(01)*

Page 7: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Reguläre Ausdrücke und endliche Automaten

Zu einem regulären Ausdruck läßt sich leicht ein endlicher Automat angeben, der genau die Sprache akzeptiert, die auch der reguläre Ausdruck beschreibt. Umgekehrt kann man auch jede Sprache, die von einem endlichen Automaten akzeptiert wird einfach mit einem regulären Ausdruck beschreiben. Insgesamt erhält man also, daß die von endlichen Automaten akzeptierten Sprachen genau diejenigen sind, die auch mit regulären Ausdrucken beschrieben werden können.

7

Page 8: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Pumping-Lemmas

Weiß man, daß der Automat ein Wort der Länge > 2 akzeptiert, so muß dieses das Zeichen b enthalten

Grammatiken und Automaten geben Struktureigenschaften von Sprachen vor.

Dies impliziert gewisse, strukturelle Eigenschaften von Worten hinreichender Länge.

Beispiel:

8

1 2 3a

b

a

Page 9: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Pumping Lemma für reguläre Sprachen

Für jede reguläre Sprache L gibt es eine natürliche Zahl n, so daß alle Worte w der Sprache deren Länge größer ist als n sich darstellen lassen als: W = x y z Mit |y| >0 und |xz| < n und x yk z ∈ L für alle k ≥ 0

9

Page 10: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer / 2015

Grammatiken

10

Page 11: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Systematischer Wortaufbau

Beschreibung der Worte durch Strukturangaben Dazu ‣ Einführung von „Variablen“ zur Beschreibung von

Wortstrukturen ‣ Trennung des Variablenalphabets vom Alphabet

der zugrundeliegenden Sprache „Produktion“ von Worten durch Angabe der Transformationsregeln von Variablen und Elementen aus der Sprache

11

Page 12: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Grammatiken

„Aufbau“ der Sprache anbn durch das Angeben konkreter Regeln: Σ = {a,b} Regeln: S → aSb S → ε Diese Regeln „produzieren“ die obige Sprache, indem die zulässigen Worte gezielt aufgebaut werden

12

Page 13: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Formale Definition „Grammatik“

Eine Grammatik G ist ein Quadrupel (V,Σ,S,P) bestehend aus

V: Einer Menge von Variablen mit V∩Σ = ∅

Σ: Ein Alphabet, Menge der Terminalsymbole

S: S∈V, das Startsymbol

P: P ⊆ (V∪Σ)+× (V∪Σ)+ die Produktionsregeln

Im folgenden verwenden wir, falls nicht anders kenntlich gemacht, folgende Konventionen: •Großbuchstaben bezeichnen Variable •Kleinbuchstaben bezeichnen Terminalsymbole

13

Page 14: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel

Sei G = (V,Σ,S,P), mit

V = {S,E}

Σ = {(,),+,*,x,y,z}

S ∈ V

P = {S→ S + S, S → S * S, S → (S), S→E, E → x, E → y, E → z }

Mit dieser Definition lassen sich einfache arithmetische Ausdrücke, wie beispielsweise: x+y, x*x, (x+y)*x, etc. erzeugen.

14

Page 15: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Ableitungen

Sei (V,Σ,S,P) eine Grammatik und u,v,w∈ (Σ∪V)* Worte über dem Alphabet Σ∪V.

Ein Wort v∈(Σ∪V)* heißt direkt ableitbar aus u ∈(Σ∪V)* genau dann, wenn

(u,v) ∈ P

gilt. Schreibweise u ⇒ v,

Das Wort w heißt dann ableitbar aus u bzgl. der Grammatik G, genau dann, wenn es eine Folge direkter Ableitungen

u ⇒ v1 ⇒ v2 … vn ⇒ w

gibt. Schreibweise: u ⇒* w

15

Page 16: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Sprache einer Grammatik

Die Sprache einer Grammatik können wir nun in einfacher Art und Weise beschreiben. Ist G = (V,Σ,S,P) eine Grammatik, so heißt

L(G) := {w ∈ Σ* | S ⇒* w }

die Sprache der Grammatik G.

Beispiel: G = (V,Σ,S,P) mit Σ ={1} und

P = {S → 11S| ε }

Die von G erzeugte Sprache ist dann:

L(G) = {1n | n gerade}

16

Page 17: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Vereinbarung

Für Ausdrücke der Form

P = {S→ S + S, S → S * S, S → (S), S → E, E → x, E → y, E → z }

Schreiben wir künftig kürzer

P = {S→ S + S | S * S | (S),S → E, E → x | y | z }

Das Zeichen „|“ steht dabei für die logische „oder“ Verknüpfung

Da ε nicht ohne Weiteres aus dem Startsymbol abgeleitet werden kann erlauben wir künftig die Regel S → ε zuzulassen, unter der Voraussetzung, daß S nicht auf der rechten Seite einer Produktion erscheint.

17

Page 18: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Ableitungsbäume

Sei wieder G = (V,Σ,S,P), mit V = {S,E} , Σ = {(,),+,*,x,y,z}, und den Produktionen P = {S→ S + S, S → S * S, S → (S), S → E, E → x, E → y, E → z } Die Grammatik einfacher arithmetischer Ausdrücke. Die Ableitung S ⇒ S+S ⇒ S + S*S ⇒ E+ S*S ⇒ E + S*(S) ⇒x + S * (S)

⇒ x+ S* (S + S) ⇒ x + E*(S+ S) ⇒ x + E * (E + S)

⇒ x + E * (E + E) ⇒ x + y* (E + E) ⇒ x + y* (x + E)

⇒ x + y* (x + y)

kann man in Form eines Baumes darstellen. Dieser Baum heißt Ableitungsbaum des Wortes x+y*(x+y)

18

Page 19: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel: Ableitungsbaum

Ein Ableitungsbaum für den Ausdruck: x + y * (x + y )19

Page 20: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Mehrdeutigkeiten

Die Ableitung eines Wortes bzgl. einer Grammatik ist keinesfalls eindeutig.

Beispiel: Wir betrachten wieder die Grammatik für arithmetische Ausdrücke:

G = (V,Σ,S,P), mit

V = {S,E} , Σ = {(,),+,*,x,y,z}, S = E und den Produktionen

P = {S→ S + S, S → S * S, S → (S), S → E, E → x, E → y, E → z }

Ziel: Ableitung des Ausdrucks x + y*z

20

Page 21: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Mehrdeutigkeiten

Term = x + y*z

Erste Möglichkeit

S → S + S → S + S * S → E + S * S → x + S * S → … → x + y * z

Zweite Möglichkeit

S → S + S → E + S → x + S → x + S * S → … →x + y * z

Dritte Möglichkeit

S → S + S → S + S * S → S+ E* S → S+ y * S → … → x + y * z

usw.

21

Page 22: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Vermeidung von Mehrdeutigkeiten

Derartige Mehrdeutigkeiten können vermieden werden, falls Regeln definiert werden, die klar festlegen, welche Produktion im Konfliktfall anzuwenden ist.

Meist wird der Begriff der Rechtsableitung eingeführt:

Eine Rechtsableitung ist eine Ableitung in der immer die am weitesten rechts stehende Variable in der Ableitung ersetzt wird.

Beispiel:

S → S + S → S + S * S → S + S * E → S+ S * z → S + E * z → …

Es können dabei aber immer noch Mehrdeutigkeiten auftreten

22

Page 23: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Vermeidung von Mehrdeutigkeiten

Rechtsableitungen verhindern nicht, daß Mehrdeutigkeiten auftreten, verringern aber die Anzahl mehrdeutiger Ableitungen.

Sollen alle Rechtsableitungen eindeutig sein ist es oft erforderlich die Struktur der Produktionen zu ändern.

23

Page 24: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Ableitungsbäume, Rechtsableitung, Linksableitung

In einem Ableitungsbaum bestehen die Blätter aus Terminalsymbolen und alle inneren Knoten aus Variablen der zugrundeliegenden Grammatik.

Es gibt in der Regel unterschiedliche Ableitungen für ein Wort aus Terminalsymbolen, daher werden die folgenden Vereinbarungen getroffen:

Eine Ableitung heißt Rechtsableitung (Linksableitung), falls in jedem Ableitungsschritt die am weitesten rechts (links) stehende Variable ersetzt wird.

Rechts- bzw. Linksableitungen verhindern keine Mehrdeutigkeiten, schränken deren Anzahl aber ein.

24

Page 25: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Die Chomsky Typen

Typ Name Bedingung an Regeln u → v Beispiel

3 Reguläru ist eine Variable und v ein Zeichen aus Σ∪{ε}

Oder v=sT mit s∈Σ und T∈V

A → a Oder

A → aA

2 kontextfrei u ist eine Variable A → aA, B →AABB

1 Kontextsensitiv Es gilt |u| ≤ |v| aAb → aBbA, aAa → AAAa

0 Rekursiv aufzählbar u enthält eine Variable aAb → aB, aAa

→aaAABB

Grammatiken werden mit folgenden Vereinbarungen in Klassen eingeteilt:

Ist G = (V,Σ,S,P), und enthält P die Produktionen u → v, u enthält mindestens eine Variable

25

Page 26: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel Produktionen bei Typ-n Grammatiken

Zulässig bei Typ-0 Grammatiken xAy → ε|x | xA | B| xAyBzC Zulässig bei Typ-1 Grammatiken xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln sind hier unzulässig

Zulässig bei Typ-2 Grammatiken A → x | xA | xABy ‣ Die Produktionen mit xAy auf der linken Seite sind nicht zulässig ‣ Auf der linken Seite jeder Produktion steht genau eine Variable

Typ-3 Grammatiken Nur Produktionen der Form A → a | aA | ε sind zulässig

26

Page 27: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (1/3)

Gegeben die Grammatiken ‣ G1 := (Σ, V, S, P1) und ‣ G2 := (Σ, V, S, P2) mit

• V:= {S, A, B, C} • Σ := {a,b} • P1 := {S →AB, • A→BC | a , • B→CC | b, • C→a}

‣ Wieviele und wie lange Wörter werden erzeugt?

27

Page 28: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (2/3)

Die Produktionen können als Graph dargestellt werden:

28

S

B

C

A

Es werden nur endlich lange Worte produziert

Page 29: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (3/3)

Hinzunahme einer Produktion P2 := P1 ∪ { C→AB}

29

S

B

C

A

Es werden beliebig lange Worte produziert

Page 30: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Die Chomsky Normalform

Eine Grammatik G = (V,Σ,S,P) ist in Chomsky-Normalform, genau dann, wenn alle Produktionen die Form A→ BC oder A → a haben und ε auf keiner rechten Seite einer Regel vorkommt. Der Ableitungsbaum einer Grammatik in Chomsky-Normalform ist ein binärer Wurzelbaum

30

Page 31: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Die Chomsky Hierarchie

• Die regulären Sprachen sind eine echte Teilmenge der kontextfreien Sprachen.

• Die kontextfreien Sprachen, die nicht die leere Zeichenkette enthalten, sind eine echte Teilmenge der kontextsensitiven Sprachen.

• Die kontextsensitiven Sprachen sind eine echte Teilmenge der rekursiv aufzählbaren Sprachen.

31

Typ 0

Typ 1

Typ 2

Typ 3

Page 32: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Palindrome

Die Wortmenge der Palindrome über einem Alphabet ∑ mit mehr als zwei Zeichen ist keine reguläre Sprache. ‣ Palindrome sind dabei Strings w über ∑ für w=wR

gilt ‣ über dem Alphabet {0,1} sind etwa

• 101, 010, 110011 Palindorme • 110, 011 und 110111 sind keine Palindrome

32

Page 33: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel Palindrome (1)

Wir weisen nach, daß die Sprache der Palindrome über ∑={0,1}, sie diese Lpal keine reguläre Sprache ist. Dazu wird das Pumping Lemma für reguläre Sprachen verwendet. Angenommen Lpal wäre regulär, dann ‣ gibt es eine natürliche Zahl n, so daß Worte w

deren Länge n übersteigt als w= xyz zerlegt werden können

‣ ferner gilt dann für jedes k∈ℕ xykz∈ Lpal

33

Page 34: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel Palindrome (2)

Wir betrachten das Palindrom w= 0n10n. Die Länge von w ist sicher größer als n, also gilt das Pumping Lemma für reguläre Sprachen. Als gibt es eine Zerlegung w = xyz = 0n10n mit |y|>0 ‣ y muß dabei eine oder mehr Nullen der ersten

Gruppe von Nullen aus w enthalten ‣ nach dem Pumping Lemma wäre dann auch xz ein

Palindrom ‣ dies kann aufgrund der Struktur von y jedoch nicht

sein ‣ Also ist Lpal keine reguläre Sprache

34

Page 35: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel Palindrome (3)

Die Struktur der Sprache Lpal kann induktiv leicht erschlossen werden. Dazu folgende Überlegung ‣ Ein Palindrom welches mit 0 beginnt endet auch

mit 0 ‣ Ein Palindrom welches mit 1 beginnt endet auch

mit 1 ‣ Ein Palindrom bleibt Palindrom, wenn man das

erste und das letzte Zeichen entfernt ‣ also kann man die Palindrome über ∑ induktiv

definieren.

35

Page 36: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel Palindrome (4)

36

𝜀, 0 und 1 sind Palindrome. M.a.W. Strings der Länge ≤1 sind Palindrome.

Induktionsanfang:

Induktionsschritt: Ist w ein Palindrom so sind auch 0w0 und 1w1 Palindrome

Ein Wort w ist genau dann ein Palindrom, wenn es sich aus diesen Induktionsschritten herleiten

(produzieren) läßt

Page 37: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel: eine Grammatik für Palindrome

Gesucht: Grammatik über dem Alphabet Σ = {0,1}, die genau diejenigen Worte produziert, die die Form u = wwR mit w∈Σ* haben.

D. h. wir suchen eine Grammatik, die genau die Palindrome mit einer geraden Anzahl von Zeichen über dem Alphabet Σ produziert.

Sei G = (V,Σ,S,P), eine Grammatik mit

V = {S}

Σ = {0,1}

P = { S → ε, S → 0S0, S → 1S1}

Damit produziert G genau die Palindrome mit gerader Zeichenzahl über Σ.

37

Page 38: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel: eine Grammatik alle Palindrome (1)

Gesucht: Grammatik über dem Alphabet Σ = {0,1}, die genau die Palindrome über Σ erzeugt.

Sei G = (V,Σ,S,P), eine Grammatik mit

V = {S}

Σ = {0,1}

P = { S → ε, S → 0S0, S → 1S1, S → 1, S → 0 }

Damit produziert G genau die Palindrome über Σ.

38

Page 39: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Reguläre Grammatiken

Jede vom einem endlichen Automaten erzeugte Sprache wird von einer regulären Grammatik erzeugt.

Dazu konstruiert man aus dem Automaten eine Grammatik, die genau die vom Automaten erkannte Sprache produziert.

Gegeben ein endlicher Automat: (Σ,Q,s,F,δ),

Vorgehensweise:

Falls δ(q1,a) = q2 dann: q1 → a q2 ∈ P

Falls δ(q1,a) = q2 und q2 ∈ F dann: q1 → a ∈ P

Falls ε∈ L(A) dann q0 → ε ∈ P

39

Page 40: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel

Die Menge P der zugehörigen Grammatik besteht genau aus den folgenden Elementen:

P = { q0 → 0q0, q0 → 0,q0 → 1q1, q1 → 0q1, q1 → 1q0, q0 → ε, q1 →1}

40

00

1

1

Page 41: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Grammatiken mit ε-Produktionen

Enthält eine Grammatik Ableitungen der Form S → ε so kann man diese in eine Grammatik ohne ε-Produktionen wie folgt umwandeln.

Schritt 1

Zerlegung der Menge der Variablen in zwei disjunkte Teilmengen V1 und V2, derart, daß V1 alle Variable enthält aus denen das leere Wort hergeleitet werden kann.

V1 ist die kleinste Menge, für die folgendes gilt:

1.A → ε impliziert A ∈ V1

2.B → C1C2C3 ... Cn und Ci∈ V1 für alle i impliziert B ∈ V1

41

Page 42: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Elimination von ε-Produktionen

Für kontextfreie und reguläre Grammatiken (und nur für diese!) ist die Verwendung von Produktionen der Form A→ε unkritisch. Die Elimination von Regeln der Form A→ε geschieht dabei wie folgt: Zerlegung der Menge der V und V1 und V2, derart, daß gilt: ‣ V1 enthält die Variablen aus denen ε abgeleitet werden kann ‣ V1 ist die kleinste Menge für die gilt:

• A→ε ∈ P ⇒ A ∈ V1

• B → C1C2 … Cn und Ci ∈ V1 für alle i impliziert B∈ V1 Lösche alle ε-Regeln. Für jede Regel D -> w, in der mindestens eine Variable aus V1 in w Seite vorkommt werden alle Regeln der Form D -> w' zu den Produktionen hinzugefügt. w' ist dabei nichtleeres Wort, das durch Weglassen von Variablen aus V1 aus w entsteht.

42

Page 43: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Grammatiken mit ε-Produktionen

Schritt 2 Lösche alle ε-Regeln und füge für jede Regel D -> w, in der mindestens eine Variable aus V1 in w vorkommt, alle Regeln der Form D -> w' hinzu, wobei w' ein nichtleeres Wort ist, das durch Streichung von Variablen aus V1 in w entsteht. Die Zahl der neu zu P hinzuzufügenden Produktionen steigt damit stark an.

43

Page 44: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel: Grammatiken mit ε-Produktionen

D → abBAba, D → abAba,

D → abBba, D → abba, D → AabAba, D → AabBba, D → Aabba,

Sind k Positionen mit einer Variablen aus V1 belegt erhält man 2k-1 neue Produktionen

Wir betrachten die folgende Produktion einer Grammatik: D → AabBAba, mit A,B ∈ V1 Die neu hinzukommenden Regeln sind dann:

44

Page 45: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel: Pumping Lemma für reguläre Sprachen

1 2 3a

b

a

Wird w vom Automaten akzeptiert und ist |w|>2 so hat w die Gestalt

w = a(ba)na

Dabei ist n eine natürliche Zahl oder 0

45

Page 46: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Pumping Lemma für kontextfreie Sprachen

Analogon zum Pumping Lemma für reguläre Sprachen. Gegeben ist eine kontextfreie Grammatik G = (V,Σ,S,P). Zugrundeliegende Idee: ‣ Falls ein hinreichend „langes“ Wort in L(G)

existiert, so taucht eine Variable aus V auf der rechten Seite einer Produktion doppelt auf.

‣ Damit wird ein Teilbaum eines Ableitungsbaums iteriert.

46

Page 47: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Pumping Lemma für kontextfreie Sprachen

Sei G = (V,Σ,S,P) eine kontextfreie Grammatik. Dann gibt es eine natürliche Zahl n mit: Alle z ∈ L(G) mit |z| > n existiert eine Zerlegung z = uvwxy mit |vx| ≧ 1, |vwx| ≦n

uvkwxky ∈ L(G), für alle k ∈ℕ

47

Page 48: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Anwendung des Pumping Lemmas

Das Pumping Lemma wird meist angewandt, um zu entscheiden, daß eine Sprache L nicht kontextfrei ist Wir betrachten die Sprache L über dem Alphabet Σ = {a,b,c} mit L = {anbncn| n ∈ℕ}

L ist nicht kontextfrei. Wäre L kontextfrei, könnte man (Pumping Lemma) ein hinreichend langes Wort z ∈ L(G) in z = uvwxy zerlegen, mit |vx| ≥ 1, |vwx| ≤ n uvkwxky ∈ L(G), für alle k ∈ ℕ0

48

Page 49: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Anwendung des Pumping Lemmas

Damit folgt:

Da uwy in L ist, muß vx die gleiche Anzahl der Buchstaben a, b, c enthalten Wegen |vx|>1 enthält vx jeweils mindestens einen der Buchstaben a, b, c Da |vwx| ≤ n gilt kann vx nicht alle Buchstaben aus {a, b, c} enthalten Widerspruch! Also ist L nicht kontextfrei.

49

Page 50: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beweis (1)

50

Fall1: v und x bestehen aus verschiedenen Zeichen, d.h.

v ∉ {a}* ∪ {b}* ∪ {c}* oder x ∉ {a}* ∪ {b}* ∪ {c}*

Dann stehen in dem Wort uv2wx2y nicht alle a´s vor den b´s bzw nicht alle b´s vor den c´s.

Widerspruch!

Beweis durch Fallunterscheidungen

Page 51: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beweis (2)

51

Fall2: vwx ist ein Teilwort von ap

u = aj, v=ak, w = al und x= am, und

y = ap-(j+k+l+m)bpcp mit k+m > 0

Für i=0 erhält man uv0wx0y = ap-(k+m)bpcp mit k+m >0, also

uv0wx0y ∉ L, Widerspruch!

Page 52: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beweis (3)

52

Fall 3 und 4: vwx ist ein Teilwort von bp oder cp

Widerspruch analog zu Fall 2

Page 53: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beweis (4)

53

Fall 5: v ist ein Teilwort von ap und x ein Teilwort von bp

Dann ist u = aj, v = ak und w = ap-(j+k)bl, x = bm, y = bp-(l+m)cp

und es gilt k+m >0

Für i=0 erhält man uv0wx0y = ap-kbp-mcp ∉ L, Widerspruch!

Page 54: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beweis (6)

54

Fall 6: v ist ein Teilwort von ap und x ein Teilwort von cp

Fall 6: v ist ein Teilwort von bp und x ein Teilwort von cp

Beide Fälle ergeben analog zu Fall 5 einen Widerspruch

Page 55: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer / 2015

Formale Grundlagen der InformatikEigenschaften kontextfreier Grammatiken und

Normalformen

Page 56: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Was sind Normalformen?

Normalformen stellen sicher, daß bei Grammatiken die Produktionen stets eine bestimmte Struktur besitzen. Vorteile: ‣ einheitliche Darstellung der Produktionsregeln ‣ besserer Überblick über die Ableitungen ‣ vorgegebene Struktur der Ableitungsbäume

56

Page 57: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Die Chomsky Normalform

Für jede kontextfreie Grammatik deren Sprache das leere Wort nicht umfaßt gibt es eine äquivalente Grammatik für die jede Produktion eine der beiden Formen besitzt ‣ A → BC ‣ A →a

dabei bezeichnen Großbuchstaben Variable und Kleinbuchstaben Terminalsymbole.

57

Page 58: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Folgerungen für die Chomsky NF

Aus der Struktur der Ableitungen folgen sofort die beiden Aussagen: ‣ Jeder Ableitungsbaum einer Chomsky Grammatik

ist ein binärer Baum (das ist einfach einzusehen) ‣ Die Frage, ob ein Wort w von einer Grammatik in

Chomsky Normalform erzeugt werden kann ist in O(n3) lösbar (n = Wortlänge)… ist nicht ganz so einfach einzusehen

58

Page 59: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Die Greibach Normalform

Für jede kontextfreie Grammatik für eine Sprache die nicht nur aus dem leeren Wort besteht gibt es eine äquivalente Grammatik deren Produktionen die folgende Form haben ‣ A → aα

dabei ist α ein beliebiger String aus Variablen und a ein Terminalzeichen

59

Page 60: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Voraussetzungen für Normalformen

Um eine Grammatik in eine Normalform zu überführen sind einige vorbereitende Schritte nötig ‣ Alle „unnützen“ Symbole, d.h. all diese die im

Grunde nicht gebraucht werden, müssen entfernt werden

‣ 𝜀-Produktionen, d.h. Produktionen der Form P ➝ ∊, müssen entfernt werden

‣ Einheitsproduktionen (unit productions), d.h. Produktionen der Form A ➝ B müssen ebenfalls entfernt werden

60

Page 61: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Elimination unnützer Symbole

61

Ein Symbol ist nützlich, wenn es eine Ableitung der Form

S⇒*αXβ⇒

*w

mit einem Terminalstring w gibt, im andern Fall heißt ein solches Symbol unnütz. Das Entfernen unnützer Symbole ändert die Sprache der Grammatik nicht.

Page 62: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Erreichbare und erzeugende Symbole

62

Ein Symbol ist erreichbar, wenn es eine Ableitung der Form

mit einer Variablen X und beliebigen Strings 𝛼 und 𝛽 gibt.

S⇒*αXβ

Ein Symbol ist erzeugend, wenn es eine Ableitung der Form

X⇒*w

mit einem Terminalstring w gibt

Ein nützliches Symbol ist sowohl erzeugend als auch erreichbar

Page 63: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (1)

Wir betrachten die Grammatik G = (V,∑,S,P), mit ∑={a,b} und den Produktionen ‣ S ➝ AB|a und A ➝ b

Dabei sind A und S erzeugende Symbole, B nicht. Wenn B eliminiert wird, fällt die Produktion S ➝ AB weg und die Produktionen reduzieren sich zu ‣ S ➝ a und A ➝ b

Also sind nur S und a erreichbar und A kann entfernt werden. Es bleibt: S ➝ a, welches die Sprache von G erzeugt.

63

Page 64: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (2)

Betrachten wir zuerst die Erreichbarkeit der Symbole, der Grammatik ‣ S ➝ AB|a und A ➝ b

so ist ersichtlich, daß alle Symbole erreichbar sind. Eliminiert man nun B, so fällt die Produktion S ➝ AB weg und die Produktionen reduzieren sich zu ‣ S ➝ a und A ➝ b

Diese erzeugen ebenfalls die Sprache L(G), enthalten aber unnütze Symbole (A und b)

64

Page 65: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Vorgehensweise

Also erhalten wir folgende Vorgehensweise. Für eine gegebene Grammatik G mit L(G) ≠ ∅ ‣ Elimination aller unnützen Symbole und alle

Produktionen die diese enthalten ‣ Im nächsten Schritt werden alle Symbole entfernt

die nicht erreichbar sind Man erhält eine Grammatik G´ die die selbe Sprache wie G erzeugt, aber weder unnütze Symbole enthält, noch unerreichbare Zeichenketten.

65

Aho Satz 7.2

Page 66: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Algorithmus

Der folgende induktive Algorithmus bestimmt die Menge der erzeugenden und erreichbaren Symbole ‣ Induktionsanfang: Jedes Symbol aus ∑ ist

erzeugend (es erzeugt sich selbst) ‣ Induktionsschritt: Wenn es eine Produktion A ➝ 𝛼

gibt und 𝛼 erzeugend ist, so ist A erzeugend. (Ein Beweis hierzu findet sich in Aho Satz 7.4)

66

Page 67: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Bestimmung erzeugender Symbole

Der folgende induktive Algorithmus bestimmt die Menge der erzeugenden Symbole ‣ Induktionsanfang: Jedes Symbol aus ∑ ist

erzeugend (es erzeugt sich selbst) ‣ Induktionsschritt: Wenn es eine Produktion A ➝ 𝛼

gibt und 𝛼 erzeugend ist, so ist A erzeugend. Damit findet man alle erzeugenden Symbole.

67

(Ein Beweis hierzu findet sich in Aho Satz 7.4)

Page 68: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel

Wir betrachten wieder die Grammatik G = (V,∑,S,P), mit ∑={a,b} und den Produktionen ‣ S ➝ AB|a und A ➝ b

a und b sind nun erzeugend, da Elemente aus ∑. Wegen A ➝ b ist auf A erzeugend und wegen S ➝ a ist S erzeugend. Die Produktion S ➝ AB kann nicht erreicht werden, da B nicht erzeugend ist. Also erhält man als Menge der erzeugenden Symbole: {a, b, S, A}

68

Page 69: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Bestimmung erreichbarer Symbole

Der folgende induktive Algorithmus bestimmt die Menge der erreichbaren Symbole ‣ Induktionsanfang: S ist erreichbar ‣ Induktionsschritt: Wenn eine Variable A erreichbar

ist und A ➝ 𝛼 eine Produktion ist, so sind alle Variable aus 𝛼 erreichbar

Damit findet man alle erreichbaren Symbole.

69

(Ein Beweis hierzu findet sich in Aho Satz 7.6)

Page 70: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel

Wir betrachten wieder die Grammatik G = (V,∑,S,P), mit ∑={a,b} und den Produktionen ‣ S ➝ AB|a und A ➝ b

S ist erreichbar da S ∈ P gilt. Wegen S ➝ AB|a sind auch A, B und a erreichbar. Damit folgt, wegen A ➝ b, daß auch b erreichbar ist Also erhält man als Menge der erreichbaren Symbole: {S, A, B, a, b}

70

Page 71: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Elimination von Einheitsproduktionen

Einheitsproduktionen sind Produktionen der Form ‣ A → B

Derartige Produktionen erhöhen bisweilen die Lesbarkeit der Grammatik, haben aber keinen Einfluß auf die erzeugte Sprache (vgl. Grammatik für arithmetische Ausdrücke).

71

Page 72: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (1)

Grammatik für arithmetische Ausdrücke: ‣ I → a | b | Ia | Ib | I0 | I1 ‣ F → I | (E) ‣ T → F | T * F ‣ E → T | E + T

mit Σ = {0, 1, a, b,(,),*,+} und V = {I, F, T, E}

72

Was ist das Startsymbol?

Page 73: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Beispiel (2):Vergleich der Grammatiken

Zum Vergleich ‣ I → a | b | Ia | Ib | I0 | I1 ‣ F → I | (E) ‣ T → F | T * F ‣ E → T | E + T

Page 74: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (3): Erster Ansatz

In der Grammatik ‣ I → a | b | Ia | Ib | I0 | I1 ‣ F → I | (E) ‣ T → F | T * F ‣ E → T | E + T

kann man die (Einheits!) Produktion E → T durch ‣ E → F | T * F

ersetzen, was aber die Einheitsproduktion nicht eliminiert, da E → F bestehen bleibt.

74

Page 75: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (4)

Erweiterung von E → F durch die Produktionen von F ergibt ‣ E → I | (E) | T * F

bleibt E → I , schließlich: ‣ E → a | b | Ia | Ib | I0 | I1 | (E) | T * F

damit sind alle Einheitsproduktionen für E eliminiert (Achtung: E → a ist keine Einheitsproduktion).

75

Page 76: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (5)

Diese Technik hilft nicht bei zyklischen Einheitsproduktionen: ‣ A → B, B → C, C →A

Eine mögliche Vorgehensweise ist: ‣ Variable A und B suchen mit

76

A⇒*B

Hierbei sind Fälle wie A→BC, C → ε möglich, d.h. auf dem Weg nach B müssen nicht nur Einheitsproduktionen stehen!

Page 77: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (6)

Wenn diese Paare (A, B) ermittelt sind kann jede Folge ‣ A ⇒ B1 ⇒ B2 … ⇒ Bn ⇒ α

ersetzt werden durch A → α. Damit hat man folgendes Verfahren ‣ Induktionsbeginn: (A, A), d.h. A ⇒ A in null

Schritten ‣ Induktionsschritt: Ist (A,B) ein Einheitspaar und

B →C eine Produktion, dann ist auch (A,C) ein Einheitspaar

77

Page 78: New Formale Grundlagen der Informatik - Michael Gamer · 2020. 2. 13. · xAy → AAxxAA, xAx → xxAAxx ‣ Die Produktion xAy → xA ist hier nicht zulässig ‣ Verkürzende Regeln

Michael Gamer

Beispiel (7)

Für die Grammatik arithmetischer Ausdrücke sind ‣ (E, E), (T, T), (I, I) und (F, F)

Einheitspaare. Dann folgt ‣ (E, E) und E → T liefert (E, T) ‣ (E, T) und T → F liefert (E, F) ‣ (E, F) und F → I liefert (E, I) ‣ (T, T) und T → F liefert (T, F) ‣ (T, F) und F → I liefert (T, I) ‣ (F, F) und F → I liefert (F, I)

78