3.1 G rammatiken Automaten und Formale Sprachen R ... · Behauptung: Dieses System erzeugt genau...

19
Automaten und F ormale Sp rach en R ep etitorium 5. V orlesung Ma rtin D ie tz fe lb in ge r 7. J u n i 2005 FG KTuEA,TU Ilm e n a u Re p e tito riu m A F S – 07.06.05 3.1 G rammatik en FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 1 Beisp iel : V = {S, / c , $,A,B,C }; Σ = {a}; Startsymbol S ; P enth ¨ alt folgend e P aare: (1) S / c Aa$ (2) Aaa aaAa (3) Aa$ aaB$ (4) aB Ba (5) / c B / c A (6) Aa$ aaC (7) aC C a (8) / c C ε FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 2 Interessante Ableitungen beginnen mit S , z.B .: S (1) / cAa$ (6 ) / caaC (7 ) / caC a (7 ) / cC aa (8 ) aa. S (1) / cAa$ (3 ) / caaB$ (4 ) / caBa$ (4 ) / cBaa$ (5 ) / cAaa$ (2 ) / caaAa$ (6 ) / caaaaC (7 ) / caaaC a (7 ) ⇒· · · (7 ) / cC aaaa (8 ) aaaa. FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 3

Transcript of 3.1 G rammatiken Automaten und Formale Sprachen R ... · Behauptung: Dieses System erzeugt genau...

Automaten und F ormale Sp rac h en

R ep etitorium

5. V orlesung

Martin D ie tz fe lb in ge r

7. J u n i 2005

F G K T u E A , T U Ilm e n a u Rep e tito riu m A F S – 07.06.05

3.1 G rammatik en

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 1

Beisp iel :

V = {S, /c , $, A, B, C}; Σ = {a}; Startsymbol S;

P enthalt folgend e P aare:

(1) S → /cAa$

(2) Aaa → aaAa

(3) Aa$ → aaB$

(4) aB → Ba

(5) /cB → /cA

(6) Aa$ → aaC

(7) aC → Ca

(8) /cC → ε

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 2

Interessante Ableitungen beginnen mit S, z.B .:

S(1)⇒ /cAa$

(6 )⇒ /caaC

(7 )⇒ /caCa

(7 )⇒ /cCaa

(8 )⇒ aa.

S(1)⇒ /cAa$

(3 )⇒ /caaB$

(4 )⇒ /caBa$

(4 )⇒ /cBaa$

(5 )⇒

⇒ /cAaa$(2 )⇒ /caaAa$

(6 )⇒ /caaaaC

(7 )⇒ /caaaCa

(7 )⇒ · · ·

(7 )⇒ /cCaaaa

(8 )⇒ aaaa.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 3

Behauptung:

Dieses System erzeugt genau die W orter

aa · · · a︸ ︷︷ ︸

i−mal

mit i = 2s, s ≥ 1.

Beweis: Induktion, etw as muhsam, nicht tief.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 4

Definition: Grammatik G besteht aus :

• V : Alphabet, Menge der (syntaktischen)”Variablen“

• Σ : Alphabet, Menge der”T erminalzeichen“

V ∩ Σ = ∅

• S ∈ V :”Startsymbol“,

”Startvariable“

• P : endliche Menge von”P roduktionen“

oder”Ableitungsregeln“

l → r (formal: Paar (l, r))

wobei l ∈ (V ∪ Σ)+ und r ∈ (V ∪ Σ)∗.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 5

Grammatik spezifiziert Kalkul

. . . der Worter uber Σ erzeugt.

Sei G = (V, Σ, S, P ) Grammatik.

(a) Wir schreiben u lv ⇒G u rv oder u lv ⇒ u rv ,

falls u , v ∈ (V ∪ Σ)∗ und l → r eine Produktion in P ist

Achtung: → ist durch endliche L iste gegeben,

⇒ ist unendlich (normalerweise)

Sprechweise: u rv ist in 1 Schritt aus u lv ableitbar.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 6

Beispiele:

/caaB$ ⇒ /caBa$

/caaaaC ⇒ /caaaCa

A/caAaBa ⇒ A/caABaa

$$AaaB ⇒ $$aaAaB

$$AaaB ⇒ $$AaBa

⇒ enthalt”sinnvolle“ und

”sinnlose“ Ubergange!

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 7

Mehrere Schritte nacheinander

(b) α∗

⇒ α′, fallseine Folge

α = α0 ⇒ α1 ⇒ α2 ⇒ . . . ⇒ αt−1 ⇒ αt = α′

ex istiert.

Spezialfall t = 0: α∗

⇒ α gilt immer

Sprechweise: α′ ist aus α ableitbar.

Schrittanzahl betonen: αt⇒ α′

Beispiele: /caC2⇒ a S

5⇒ aa

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 8

”Sinnvolle“ Z w ischenschritte

(c) α ∈ (V ∪ Σ)∗ heiß t Satzform von G, falls S∗

⇒ α.

Folge S = α0 ⇒ α1 ⇒ · · · ⇒ αt = α, t ≥ 0,

heiß t Ableitung oder H erleitung von α.

N ur Satzformen haben Ableitungen.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 9

”Sinnvolle“ E ndresultate

(d)

L(G) := {w ∈ Σ∗ | S∗

⇒ w}

heißt die von G erzeugte (oder beschriebene) Sprache.

Im Beispiel:

L(G) = {ai | i = 2s fur ein s ≥ 1}

Grammatik G : endliches Objekt, endlicher”Text“

Sprache L(G) : (meist) unendliche Menge

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 10

Chomsky-0-Grammatiken

sind Grammatiken G = (V, Σ, S, P ) wie in der Definition

beschrieben.

In P sind Paare

l → r

wobei l ein nichtleeres Wort uber V ∪ Σ ist,

r ein beliebiges Wort uber V ∪ Σ .

L0 ist die Klasse aller Sprachen der Form L(G),

G Grammatik.

”Chomsky-0-Sprachen“

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 11

Chomsky-1-Grammatiken

. . . oder kontextsensitive Grammatiken

Def.: Eine Produktion l → r heißt kontextsensitiv, falls

l = α A γ , r = α β γ, wobei |β| ≥ 1

und A ∈ V , α, β, γ ∈ (V ∪ Σ)∗

”Man darf A durch das nichtleere Wort β ersetzen, aber

nur, wenn A im Kontext α..γ steht.“

Entscheidend: N icht-verkurzend: |r| ≥ |l|

Auch A → β, A ∈ V , β ∈ (V ∪ Σ)+, ist kontextsensitive

Produktion. (α = γ = ε.)

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 12

Beispiel : Kontextsensitiv: /cB → /cA aAa$ → aaBa$

Nicht kontextsensitiv: Aa$ → aaB$ /cC → ε

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 13

Chomsky-1-Grammatiken

Def.: Grammatik G = (V, Σ, S, P ) heißt vom Typ 1 oder

kontextsensitiv,

wenn

• entweder alle Produktionen von G kontextsensitiv sind

• oder alle Produktionen von G kontextsensitiv sind außer

S → ε,

u nd S nie a u f der rechten Seite einer Produ ktion vorkom m t.

Kontextsensitive Grammatiken heißen auch

Chomsky-1-Grammatiken

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 14

Chomsky-1-Sprachen

Def.: Eine Sprache L heißt kontextsensitiv oder

vom Typ 1, falls

L = L(G)

fur eine kontextsensitive Grammatik G gilt.

Die Klasse aller Typ-1-Sprachen heißt L1

Klar:

L1 ⊆ L0

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 15

(Wortlangen-)Monotone Grammatiken

Def.: Eine Produktion l → r heißt (wortlangen-)monoton

oder nicht-verkurzend, falls |r| ≥ |l|.

Def.: Grammatik G = (V, Σ, S, P ) heißt monoton, wenn

• entweder alle Produktionen von G monoton sind

• oder alle Produktionen von G monoton sind außer

S → ε,

und S nie auf der rechten Seite einer Produktion vorkommt.

Klar: G kontextsensitiv ⇒ G monoton .

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 16

Monotone Grammatiken

Fakt: G monoton

man kann eine kontextsensitive Grammatik G′ konstruieren

so dass

L(G) = L(G′)

(Idee: Baue jede monotone Produktion einzeln

in eine Folge von kontextsensitiven Produktionen um.)

Also:

Monotone Grammatiken liefern genau die Sprachen in L1.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 17

Beispiel : Grammatik fur L = {a2s

| s ≥ 1} kann in m on oton e

G ra m m a tik u m ge b a u t w e rd e n .

A lso: {a2s

| s ≥ 1} ∈ L 1

Beisp iel : (Ubung)

Mon oton e G ra m m a tik fu r L′= {an

bnc

n | n ≥ 0}

A lso: L′ ∈ L 1 .

F G K T u E A , T U Ilm e n a u Rep e titoriu m A F S – 07.06.05 18

Kontextfreie G ram m atik en

. . . oder T yp-2-Grammatiken

D ef.: Eine P roduktion l → r h eiß t kontextfrei, falls

l = A ∈ V, r ∈ (V ∪ Σ )∗.

Kontextfreie P roduk tion: A → β, A ∈ V , β ∈ (V ∪ Σ )∗

”Man darf die V ariable A durc h das W ort β ersetzen

(egal wo A steh t).“

β darf auc h ε sein.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 19

Kontextfreie Grammatiken und Sprachen

Def.: Grammatik G = (V, Σ, S , P ) heißt vom Typ 2 oder

kontextfrei,

wenn alle Produktionen von G kontextfrei sind.

Def.: Sprache L heißt kontextfrei oder vom Typ 2

falls

L = L(G)

fur eine kontextfreie Grammatik G gilt.

D ie Klasse aller kontextfreien Sprachen heißt auch L2.

Werden sehen (nicht off ensichtlich): L2 ⊆ L1

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 20

Beispiel fur kontextfreie Grammatik: (V, Σ, S, P ) mit

V = {〈expr 〉, 〈term 〉, 〈fa c to r 〉}, Σ = {+, -, *, /, (, ),num},

S = 〈expr 〉, P enthalt folgende Paare/Produktionen:

〈fa c to r 〉 → num

〈fa c to r 〉 → (〈expr 〉)

〈term 〉 → 〈term 〉 * 〈fa c to r 〉

〈term 〉 → 〈term 〉 / 〈fa c to r 〉

〈term 〉 → 〈fa c to r 〉

〈expr 〉 → 〈expr 〉 + 〈term 〉

〈expr 〉 → 〈expr 〉 - 〈term 〉

〈expr 〉 → 〈term 〉

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 21

Abku rz u n g :

Statt A → β1, A → β2, . . . , A → βs

schreibt man A → β1 | β2 | · · · | βs

oder senkrecht:

A → β1

| β2

| β3

... ...

| βs

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 22

Beispiel :

〈factor〉 → num | (〈expr〉)

〈term〉 → 〈term〉 * 〈factor〉

| 〈term〉 / 〈factor〉

| 〈factor〉

〈expr〉 → 〈expr〉 + 〈term〉

| 〈expr〉 - 〈term〉

| 〈term〉

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 23

3.2 R echtslineare Grammatiken

Def.: Eine Produktion l → r heißt rechtslinear, falls

l = A ∈ V, r = aB ∈ ΣV oder r = ε.

R echtslineare Produktionen:

A → aB , A, B ∈ V , a ∈ Σ und A → ε

Klar: J ede rechtslineare Produktion ist kontextfrei.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 24

Rechtslineare Grammatiken, Typ-3-Sprachen

Def.: Grammatik G = (V, Σ, S, P ) heißt vom Typ 3 oder

rechtslinear,

wenn alle Produktionen von G rechtslinear sind.

Def.: Sprache L heißt vom Typ 3, falls

L = L(G)

fur eine rechtslineare Grammatik G gilt.

Die Klasse aller Typ-3-Sprachen heißt auch L3.

Klar: L3 ⊆ L2

Werden sehen: L3 = Klasse der regularen Sprachen

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 25

Die C homsky-H ierarchie

L3 ⊆ L2 ⊆ L1 ⊆ L0

”regular“

⇒”kontextfrei“

⇒”kontextsensitiv“

⇒”rekursiv aufzahlbar“

Werden sehen: Alle Inklusionen sind echt (”(“ )

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 26

Beispiel: N FA M

2SStart

B

C

D

1

2

2

2

1

Klar: LM = L(ε + 1+2∗ + 22+)

Rechtslineare Grammatik G = ({S, B, C, D}, {1, 2}, S, P ),

wo P enthalt:

S → 1B, S → 2C, S → ε,

B → 1B, B → 2D, B → ε,

C → 2D,

D → 2D, D → ε.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 27

Berechnungswege in M :

2

B B B D D DSStart

C DS

1 1 1 2 2 2

DStart2 2

Ableitungen in G:

S ⇒ 1B ⇒ 11B ⇒ 111B ⇒ 1112D ⇒ 11122D ⇒

111222D ⇒ 111222

S ⇒ 2C ⇒ 22D ⇒ 222D ⇒ 222.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 28

Satz : Typ-3-Grammatiken und N F A ’s

Sei L ⊆ Σ∗ Sprache. Dann gilt:

L ∈ L3 ⇔ L ist regular.

Beweis:

Transformation in beide Richtungen.

Menge V der Zustande ↔ Menge V der Variablen

Startzustand S ↔ Startvariable S

Kante von A nach B mit Beschriftung a ↔ Produktion

A → aB

Endzustand C ↔ Produktion C → ε

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 29

Verallgemeinerte rechtslineare Produktionen:

A → aB, a ∈ Σ, B ∈ V

A → ε, a ∈ Σ, B ∈ V

A → a, a ∈ Σ

A → abc, a, b, c ∈ Σ

A → abcB, a, b, c ∈ Σ, B ∈ V

A → B, B ∈ V

Allgemein:

A → a1 . . . asB, a1, . . . , as ∈ Σ, s ≥ 0, B ∈ V

A → a1 . . . as, a1, . . . , as ∈ Σ, s ≥ 0

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 30

Jede Grammatik, in der alle Produktionen verallgemeinert

rechtslinear sind, kann in einen aq uivalenten (ε-)NFA und eine

aq uivalente”pur“ rechtslineare Grammatik umgebaut werden.

(Ubung)

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 31

Linkslineare Grammatiken

Def.: Eine Produktion l → r heißt linkslinear, falls

l = A ∈ V, r = Ba ∈ V Σ oder r = ε.

Linkslineare Produktionen:

A → Ba, A, B ∈ V , a ∈ Σ und A → ε

Klar: Jede linkslineare Produktion ist kontextfrei.

Eine Grammatik G heißt linkslinear, wenn alle ihre Produk-

tionen linkslinear sind.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 32

Satz

G linkslineare Grammatik, G = (V, . . .)

es gibt rechtslineare Grammatik G′ = (V ′, . . .)

mit L(G′) = L(G).

(Also: L(G) regular.)

Dabei gilt: |V ′| ≤ |V | + 1

Beweisid ee:”Spiegelung“ von G ist rechtslineare Grammatik

fur die Spiegelsprache L(G)R. Daraus: NFA. Daraus: NFA

fur (L(G)R)R = L(G). Daraus: rechtslineare Grammatik fur

L(G).

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 33

Warnung:

M ischen von rechts- und linkslinearen Produktionen in einer

Grammatik

fuhrt uber die regularen Sprachen hinaus.

Beispiel : G = (V, Σ, S, P )

mit V = {S, B}, Σ = {a, b},

Produktionen S → aB, B → Sb, S → ε liefert:

L(G) = {anb

n | n ≥ 0} 6∈ L3

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 34

Fazit

• 4 Grammatiktypen: Typ 0, Typ 1, Typ 2, Typ 3

• . . . oder: Typ 0, kontextsensitiv, kontextfrei, rechtslinear

• 4 Sprachklassen

• Chomsky-H ierarchie: L3 ⊆ L2 ⊆ L1 ⊆ L0

• L3 entpricht regularen Sprachen

• L2: kontextfreie Sprachen:

Thema des Restes der V orlesung

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 35

Kapitel 4 Kontextfreie Grammatiken und

kontextfreie Sprachen

4. 1 B eispiele und Ableitungen

kfG (engl.: cfg): kontextfreie Grammatik

kfS (engl.: cfl): kontextfreie Sprache

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 36

Beispiel : Korrekte Klammerausdrucke Wichtig!

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

V = {S}, Σ = {0, 1}, Startsymbol S, P enthalt:

(1) S → ε

(2) S → SS

(3) S → 0S1

Kurz: S → ε | SS | 0S1

Beispiel fur Ableitung:

S ⇒ SS ⇒ SSS ⇒ 0S1SS ⇒ 01SS ⇒ 01S0S1 ⇒ 01S00S11

⇒ 0100S11 ⇒ 010011 ∈ Σ∗

Kann zeigen: L(G) = kKA !! Nicht regular!

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 37

Beispiel :

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

V = {S}, Σ = {0, 1}, Startsymbol S, P enthalt:

(1) S → ε

(2) S → 0S1

Kurz: S → ε | 0S1

Beispiel fur Ableitung:

S ⇒ 0S1 ⇒ 00S11 ⇒ 000S111 ⇒ 0000S1111 ⇒ 00001111

L eicht zu sehen: L(G) = {0n1n | n ≥ 0}

!! Nicht regular!

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 38

Grammatik fur arithmetische Ausdrucke: G =

({〈expr〉, 〈term〉, 〈factor〉}, {+, -, *, /, (, ),num}, 〈expr〉, P )

wobei P enthalt:

〈factor〉 → num | (〈expr〉)

〈term〉 → 〈term〉 * 〈factor〉

| 〈term〉 / 〈factor〉

| 〈factor〉

〈expr〉 → 〈expr〉 + 〈term〉

| 〈expr〉 - 〈term〉

| 〈term〉

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 39

Ableitungs-KalkulWenn

α = Y1 · · ·Ys A Z1 · · ·Zt

und A → X1 · · ·Xr ist Produktion in P , dann

α ⇒ α′ = Y1 · · ·Ys X1 · · ·Xr Z1 · · ·Zt

(ein Ableitungsschritt)

α∗

⇒ α′ ist definiert als

α = α0 ⇒ α1 ⇒ · · · ⇒ αt = α′ , t ≥ 0 .

(Ableitung)

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 40

Beispiel-Ableitung

〈expr〉 ⇒ 〈term〉 ⇒ 〈term〉 / 〈factor〉

⇒ 〈term〉 / (〈expr〉)

⇒ 〈term〉 / (〈expr〉 - 〈term〉)

⇒ 〈factor〉 / (〈expr〉 - 〈term〉)

⇒ num / (〈expr〉 - 〈term〉)

⇒ num / (〈expr〉 + 〈term〉 - 〈term〉)

⇒ num / (〈expr〉 + 〈factor〉 - 〈term〉)

⇒ num / (〈expr〉 + num - 〈term〉)

...

⇒ num / (num + num - num)

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 41

Beispiel-Ableitung

Produktionen: S → ε | SS | 0S1

S ⇒ SS ⇒ SSS ⇒ 0S1SS ⇒ 01SS ⇒ 01S0S1 ⇒ 01S00S11

⇒ 0100S11 ⇒ 010011 ∈ Σ∗

Beispiel-Ableitung

Produktionen: S → ε | SS | 0S1

S ⇒ 0S1 ⇒ 00S11 ⇒ 000S111 ⇒ 0000S1111 ⇒ 00001111

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 42

Satzformen

α ∈ (V ∪ Σ)∗ ist Satzform in G

⇔ ∃ Folge S = α0 ⇒ α1 ⇒ · · · ⇒ αt = α, mit t ≥ 0.

Beispiele: 〈expr〉 , 〈term〉 , 〈term〉 / 〈factor〉 , 〈term〉 / (〈expr〉)

〈term〉 / (〈expr〉 - 〈term〉) , 〈factor〉 / (〈expr〉 - 〈term〉)

num / (〈expr〉 - 〈term〉).

Keine Satzformen:

(〈expr〉 / 〈expr〉)(〈term〉 / 〈expr〉) und -〈term〉.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 43

Satzformen

Produktionen: S → ε | SS | 0S1

Satzformen:

S , 0S1 , 01 , SS , 0S1S

01S , 01SS , 01S0S1 ,

010S1S , 0101S , 0101 , 01S01

0100S110S1 , 0100110S1 , 01001101 .

Keine Satzformen:

1S0 , S0S , 0S0S1 , 0SSS0, und so weiter.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 44

Beispiel : G = ({S}, {0, 1}, S, P ), wo P folgende Produktio-

nen enthalt:

S → 0S0, S → 1S1, S → 0, S → 1, S → ε,

oder kurzer:

S → 0S0 | 1S1 | 0 | 1 | ε.

Behauptung:

L(G) = {w ∈ {0, 1}∗ | w = wR}.

Sprache der Spiegelw orter (”P alindrom e“ ) u b e r {0, 1}.

Beweis: S ie h e d ie volle n F olie n .

F G K T u E A , T U Ilm e n a u Rep e titoriu m A F S – 07.06.05 45

Palindrom e – anderes A lphab et

ara

elle

hannah

reliefpfeiler

sinnlosolnnis

ε

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 46

Auslassung:

• Induktive D efinition von Satzformen

• B ew eis durch Induktion uber Satzformen

• B ew eis durch Induktion uber die L ange einer Ableitung

• B ew eis durch Induktion uber die W ortlange

Siehe: D ie vollen Folien zur V orlesung AFS, Sommersemester

2004.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 47

Uber korrekte Klammerausdrucke fruher gezeigt:

Wenn w kKA ist, dann gilt:

(∗) |w|0 = |w|1 und fur jedes P rafix u von w gilt |u|0 ≥ |u|1.

Beim Lesen von w von links nach rechts passiert es nie,

dass man mehr Einsen als N ullen gesehen hat.

B ehauptung: Wenn w (∗) erfullt, dann ist w kKA.

D.h.: (∗) charak terisiert die Menge kKA.

Beweis: H ier weggelassen.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 48

Proposition

Fur G = ({S}, {0, 1}, S, P ) mit Produktionen

S → ε | SS | 0S1

gilt:

kKA = L(G).

Beweis:”⊆“: Induktion uber den Aufbau von kKA (Tafel)

Beispiel: Finde Ableitung fur 010010101011.

”⊇“: Durch Induktion uber die Lange der Ableitung von w

zeige:

jede Satzform α erfullt (eine Verallgemeinerung von) (∗).

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 49

4. 2 Ableitungsbaume, L inksableitungen,

R echtsableitungen

Beispiel:

S → ε | SS | 0S1

Ableitung:

S ⇒ SS ⇒ SSS ⇒ S0S1S

⇒ S01S ⇒ 0S101S ⇒ 0S101S ⇒ 0101S ⇒ 0101 .

Schrittweiser Umbau:

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 50

T :6 T :

7

_S

_S

_S

_S

_S

_S

_S

T :2

T :1

T0

:

T :3

T :4

T :5

S

S

S S

0 1

S

S

S

S

S

S

S

ε

ε

0 1

ε

ε

0 1

S

S

S S

S

S0 1

S0 1

ε

ε ε

S

S

S

S

S

S

S

S S

S

S0 1

S

S

S S

S0 1

S0 1

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 51

Ableitung:

S ⇒ SS ⇒ SSS ⇒ 0S1SS ⇒ 0S1S ⇒ 01S ⇒ 010S1 ⇒ 0101

liefert denselben Baum als Endresultat.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 52

Ableitung

S ⇒ SS ⇒ SSS ⇒ SS ⇒ 0S1S ⇒ 01S ⇒ 010S1 ⇒ 0101

liefert:

S

S

ε

S0 1

S

ε

S

S0 1

ε

S

Anderer Baum!

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 53

Beispiel: 〈expr〉-G rammatik

Arithmetische Ausdrucke mit Prioritaten

〈facto r 〉 → num | (〈ex p r 〉)

〈term 〉 → 〈term 〉 * 〈facto r 〉

| 〈term 〉 / 〈facto r 〉

| 〈facto r 〉

〈ex p r 〉 → 〈ex p r 〉 + 〈term 〉

| 〈ex p r 〉 - 〈term 〉

| 〈term 〉

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 54

Beispiel: 〈expr〉-Grammatik

Wort aus L(G):

(num-num*num/num)/num+num*num/num-num

Baue Ableitung und konstruiere Baum!

Liefert:

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 55

<factor>

num

+

num

/

*

num

)(

/

num

num

num

num

num

/

*

num

<expr>

<term>

<term>

<term>

<expr>

<expr>

<term>

<term>

<term> <expr>

<expr><term>

<term>

<term>

<term>

<factor>

<factor>

<factor>

<factor>

<factor>

<factor>

<factor>

<factor>

<factor>

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 56

num-num-num-num*num liefert

<factor>

num

<term>

<factor>

num

<term>

<factor>

num

<term>

<factor>

num

*

num

<expr>

<expr>

<expr>

<term>

<term>

<expr>

<factor>

FG KTuEA, TU Ilm e n a u Rep e tito rium AFS – 07.06.05 57

Ableitungsbaum fur Satzform:

<factor>

+

/

*

/

num

num

<expr>

<term>

<term>

<term>

<expr>

<term>

<term>

<term> <expr><factor>

<factor> <factor>

<factor>

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 58

Definition:

Ein Ableitungsbaum/Syntaxbaum T ist ein gerichte-

ter, geordneter B aum m it W urzel, d essen Knoten mit

B uc h staben aus V ∪ Σ od er mit ε besc h riftet sind , w obei:

(I) W urzel mit S besc h riftet,

(II) Knoten v mit a ∈ Σ od er mit ε besc h riftet ⇒ v ist B latt

(III) N ic h t-B latt v mit A ∈ V besc h riftet ⇒

(i) N ac h folgerknoten v1, . . . ,vr von v sind mit X1, . . . ,Xr ∈

Σ ∪ V besc h riftet; A → X1 · · · Xr ist Prod uktion in P ,

od er

(ii) v h at genau einen N ac h folger v′, mit ε besc h riftet,

A → ε ist Prod uktion

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 59

α(T ):”Ergebnis“ /

”R esultat“ /

”Blattw ort“ von T :

das Wort uber V ∪ Σ, das sich beim L esen der Blatter von T

von links nach rechts ergibt.

<factor>

+

/

*

/

num

num

<expr>

<term>

<term>

<term>

<expr>

<term>

<term>

<term> <expr><factor>

<factor> <factor>

<factor>

α(T ) = 〈facto r 〉 /num + 〈facto r 〉 * 〈facto r 〉 / 〈te rm 〉 -num

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 60

ε’s werden verschluckt:

S

S

ε

S0 1

S

ε

S

S0 1

ε

S

α(T ) = 0101

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 61

Extremfall: α(T ) = ε

S

ε

S

S S S

S S

ε ε

ε ε

S

S

X-Ableitungsbaum e: analog d efinie rt,

W u rz e lb e sc h riftu ng X ∈ V ∪ Σ

F G K T u E A , T U Ilm enau Rep e titoriu m A F S – 07.06.05 62

Lem m a

G kfG ⇒ fur X ∈ V ∪ Σ und α ∈ (V ∪ Σ)∗ sind aq uivalent:

(i) X∗

⇒ α;

(ii) α = α(T ) fur einen X-Ableitungsbaum T .

D .h.:

α ist Satzfo rm von G ⇔

∃ (S-)Ableitungsbaum T mit α(T ) = α

und

w ∈ L(G) ⇔ w ∈ Σ∗ und es gibt einen Ableitungsbaum T

mit α(T ) = w.

B e w e is: Konstruktionen. Siehe B eispiele, Ubungen.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 63

Insbesondere”(ii) ⇒ (i)“ :

Beispiel:

S

S0 1

S0 1

ε

S

S

ε

S0 1

S

ε

S

S ⇒ SS ⇒ SSS ⇒ SS ⇒ 0S1S ⇒ 01S ⇒ 010S1 ⇒

0100S11 ⇒ 010011.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 64

Ableitungsbaum / Syntaxbaum enthalt

Struk turinformation

Beispiel: Arithmetische Ausdrucke

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 65

<factor>

num

<term>

<factor>

num

<term>

<factor>

num

<term>

<factor>

num

*

num

<expr>

<expr>

<expr>

<term>

<term>

<expr>

<factor>

Teilbaume – Teilausdrucke – Prioritatsregeln

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 66

Linksableitungen — R echtsableitungen

Beispiele:

S ⇒ SS ⇒ 0S1S ⇒ 00S11S ⇒ 0011S ⇒ 00110S1 ⇒ 001101

ist Linksableitung,

S ⇒ SS ⇒ S0S1 ⇒ S01 ⇒ 0S101 ⇒ 00S1101 ⇒ 001101

ist R echtsableitung.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 67

Definition

Ableitung S = α0 ⇒ α1 ⇒ · · · ⇒ αr = w ∈ Σ∗

(N B: w besteht aus Terminalzeichen) heiß t

Linksableitung,

w enn beim Ubergang αs ⇒ αs+1

auf die am w eitesten links stehende V ariable in αs eine Pro-

duktion angew endet w ird: in

Y1 · · · Ys A Z1 · · · Zt ⇒ Y1 · · · Ys X1 · · · Xr Z1 · · · Zt

sind Y1, . . . ,Ys T erminalzeichen.

Rechtsableitungen: Z1, . . . ,Zt Terminalzeichen

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 68

S ⇒ SS ⇒ SSS ⇒ S0S1S ⇒ 0S1S ⇒ 0S10S1 ⇒ 010S1 ⇒ 0101

ist weder L inks- noch Rechtsableitung.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 69

Behauptung:

Ableitungsbaume und Linksableitungen fur w entsprechen ein-

ander eineindeutig.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 70

BeispielLinksableitungen fur 010101:

S ⇒ SS ⇒ 0S1S ⇒ 01S ⇒ 01SS ⇒ 010S1S ⇒

0101S ⇒ 01010S1 ⇒ 010101,

S ⇒ SS ⇒ SSS ⇒ 0S1SS ⇒ 01SS ⇒ 010S1S ⇒

0101S ⇒ 01010S1 ⇒ 010101,

Baume:

S

S

S0 1

ε

S

S

S

S0 1

ε

S

S0 1

ε

S

S0 1

ε

S

S

S0 1

ε

S

S0 1

ε

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 71

Behauptung:

Able itu n gsba u m e u n d L in ksa ble itu n ge n fu r w e n tsp re c h e n e in -

a n d e r e in e in d e u tig.

Beweis:

Au s L in ksa ble itu n g LA kon stru ie re Able itu n gsba u m TLA

V e rsc h ie d e n e L in ksa ble itu n ge n e rgebe n ve rsc h ie d e n e Able i-

tu n gsba u m e

Also: LA 7→ TLA ist injek tiv.

Au s be liebige m Able itu n gsba u m T e rh a lte L in ksa ble itu n g

LA(T ).

D a n n : TLA(T ) = T . — Also: LA 7→ TLA ist surjek tiv.

An a loge Argu m e n ta tion fu r Re c h tsa ble itu n ge n .

F G K T u E A, T U Ilm e n a u Rep e titoriu m AF S – 07.06.05 72

Definition

kf G rammatik G heiß t mehrdeutig, w enn es w ∈ L(G) gibt,

das z w ei verschiedene Ableitungsbaume besitzt.

G heiß t eindeutig, w enn jedes W ort w ∈ L(G) genau einen

A bleitungsbaum besitzt.

Eine kontextfreie Sp rache L heiß t inharent mehrdeutig,

w enn jede kontextfreie G rammatik G mit L = L(G) mehr-

deutig ist.

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 73

Beisp iele:

mehrdeutig: S → ε | SS | 0S1

eindeutig: S → ε | 0S1

eindeutig: die 〈ex p r 〉-Grammatik

Inharent mehrdeutig:

L := {anb

nc

m | n ,m ∈ N} ∪ {amb

nc

n | n ,m ∈ N}

Klammersprache kKA ist nicht inharent mehrdeutig!

Grammatik G mit L(G) = kKA:

Produktionen S → ε | 0S1S ist eindeutig

FG KTuEA, TU Ilmenau Repetitorium AFS – 07.06.05 74