Induktive Definition

A ∪ (B ∪ C) = (A · B) · C = (A ∪ B) ∪ C = B∪A (A∗ )∗ (A ∪ {ε})∗ = A+ = A∗ = A∗ A · {ε} = A {ε} · A = A Rechenregeln A · (B · C) = A·B∪A·C A ...
Author: Lennart Sommer
25 downloads 0 Views 80KB Size
A ∪ (B ∪ C) = (A · B) · C

= (A ∪ B) ∪ C

= B∪A

(A∗ )∗

(A ∪ {ε})∗ = A+

= A∗

= A∗

A · {ε} = A

{ε} · A = A

Rechenregeln

A · (B · C) = A·B∪A·C A · A∗

A∪B

A · (B ∪ C) = B·A∪C ·A

Regul¨ are Sprachen

Alle Sprachen, die aus einem Alphabet Σ durch Vereinigung, Verkettung und Kleene-Stern gebildet werden k¨onnen.

¨ Aquivalente Definitionen: endliche Automaten, regul¨are Grammatiken

(B ∪ C) · A

Anwendungen in der Informatik:

= {0, . . . , 9}

15

Grundmenge A0 ⊆ B,

Induktive Definition Gegeben:

ur i nach unendlich: Limes von Ai f¨

=

17

x1 , . . . , x n ∈ A ⇒

i≥0

Ai

f (x1 , . . . , xn ) ∈ A

Definition. A heißt abgeschlossen unter f , wenn gilt:

A

[

Ai+1 = Ai ∪ {f (e1 , . . . , em ) | e1 , . . . , em ∈ Ai }

Stufenweise Konstruktion von Mengen:

Bildungsregel f : B n → B

• DOS, Unix-Shells, grep, awk, Perl, Xml, . . .

• Texteditoren: erweiterte Suche

• Compilerbau: Tokens bilden regul¨are Sprache, verarbeitet durch Scanner (Lexer). Regul¨are Ausdr¨ ucke dienen als Eingabe f¨ ur Scannergeneratoren (lex, flex).

A∗ · A = A +

digit = {E, E+, E-} · digit +

A+ ∪ {ε} = A∗

scale = digit + · {.} · digit ∗ · ({ε} ∪ scale)

Beispiel. Real-Zahlen

real

14

Definition. Die Menge der regul¨aren Sprachen u ¨ber Σ, Lreg (Σ), ist die kleinste Menge, sodass ur alle s ∈ Σ (a) {}, {ε}, {s} ∈ Lreg (Σ) f¨ (b) A, B ∈ Lreg (Σ) ⇒ A ∪ B, A · B, A∗ ∈ Lreg (Σ) uber Vereinigung, Satz. Lreg (Σ) ist abgeschlossen gegen¨ Durchschnitt, Verkettung, Komplement, Differenz, Stern- und Plus-Operator, Homomorphismen und Quotientenbildung. Satz. Seien L1 und L2 regul¨are Sprachen spezifiziert durch Verkettung, Vereinigung und Stern-Operator. Die Probleme

leer, endlich, unendlich?

(a) Geh¨ort ein Wort w der Sprache L1 an? (b) Ist

L1

(c) Gilt L1 = L2 ? sind entscheidbar. 16

Satz. (a) A ist abgegeschlossen unter f . (b) Ist A0 abgeschlossen unter f und gilt A0 ⊆ A0 ⊆ B, dann gilt A ⊆ A0 .

s

statt

statt

{}

{ε}

{s} f¨ ur s ∈ Σ

L∗

L1 L2

L1 + L 2

bleibt

statt

statt

L∗

L 1 · L2

L 1 ∪ L2

Algebraische Notation

ε

statt

hat die h¨ochste Priorit¨at, + die niedrigste.

∅ ∗

digit

= E (ε + + + -) digit digit ∗

= 0 + ···+ 9

D.h.: A ist die kleinste Menge, die A0 enth¨alt und abgeschlossen ist unter f . Schema der induktiven Definition A ist die kleinste Menge, f¨ ur die gilt:

scale

Beispiel. Real-Zahlen (algebraisch)

(a) A0 ⊆ A

= digit digit ∗ . digit ∗ (ε + scale)

A| B

AB

EBNF

{ε} ∪ A

A∪B

A·B

reg. Menge

Wiederholung

Option

Alternativen

Aufeinanderfolge





A  s

Syntaxdiagramm



-A

 A

-A -B 



A∪B

A·B

A∗

A+

{s}

A

reg. Menge

[ A]

A| B

AB

{ A}

A{ A}

" s"

A

EBNF

19

real

[ A] A∗

Gruppierung

-A  -B

-A 

21

A ∪ {ε}

Syntaxdiagramme

(b) x1 , . . . , xn ∈ A ⇒ f (x1 , . . . , xn ) ∈ A (A ist abgeschlossen unter f )

18

{ A} (A)

s∈Σ

EBNF-Notation

( A) {s}

Kommentar

"s"

Beispiel. Real-Zahlen (EBNF) real = digit {digit} "." {digit} [scale] scale = "E" ["+"|"-"] digit {digit} digit = "0"|"1"|"2"| · · · |"9" 20

  digit  - .

 

Beispiel. Real-Zahlen (Syntaxdiagramm) real

- digit





s Zeichen s

Zeichen s (kein Spezialsymbol)



\s

alle Zeichen außer Zeilenende

22

scale  - +    - E - digit 

  -



egrep unter Unix

. Zeilenanfang

selektiert

^

Zeilenende

Ausdruck

$

alle Zeichen in {s1 , . . ., sn } null Mal oder ¨ofter r

[s1 · · · sn ] r*

ein Mal oder ¨ofter r

alle Zeichen außer {s1 , . . ., sn }

r+

null oder ein Mal r

[^s1 · · · sn ]

r?

24

scale





digit  - 0    - 1

 . . . .. .. ..  - 9



Regul¨ are Definitionen

Verwendung von Abk¨ urzungen f¨ ur regul¨are Teilausdr¨ ucke.

Erh¨oht nicht die Ausdruckskraft.

Bessere Strukturierung, bessere Lesbarkeit.

Keine direkte oder indirekte Rekursivit¨at:

23

= digit · digits ∪ {ε}

selektiert

digits

Ausdruck

i Mal r

ist nicht zul¨assig.

r{i}

i Mal oder ¨ofter r

r1 gefolgt von r2

r{i,} r1 r2

r1 oder r2

i bis j Mal r r1 |r2

r

r{i,j}

(r)

Beispiel. Real-Zahlen (egrep)

^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$

25

Endliche Automaten

 







%

NEA  

Modell f¨ ur Systeme mit Ein/Ausgaben aus endlichem Wertebereich und mit endlichem Speicher.   Regul¨are '$ Menge     ? 6  minimaler

DEA 

6

& DEA 

DEA . . . deterministischer endlicher Automat NEA . . . nichtdeterministischer endlicher Automat 26

Deterministischer endlicher Automat A = hQ, Σ, δ, q0 , F i, wobei Q . . . endliche Menge von Zust¨anden

∈ Q . . . Anfangszustand

Σ . . . Eingabealphabet ¨ δ: Q × Σ → Q . . . Ubergangsfunktion (total) q0

F ⊆ Q . . . Menge von Endzust¨anden

δ ∗ (q, wa) = δ(δ ∗ (q, w), a)

¨ Erweiterte Ubergangsfunktion: δ ∗ : Q × Σ∗ → Q δ ∗ (q, ε) = q, f¨ ur alle q ∈ Q, w ∈ Σ∗ , a ∈ Σ. Akzeptierte Sprache: L(A) = {w ∈ Σ∗ | δ ∗ (q0 , w) ∈ F } 28

Beispiel.

.

h j - q? 2

E

- q3j

Deterministischer endlicher Automat (DEA) +,digit digit  

? q0j digit- q1j

.

- q? h j 2

E

ε -

digit

@  R @q? h j 5

digit 

5

digit- q? h j

digit@

q4j  @

digit

 ? - q4j  6

Nichtdeterministischer endlicher Automat (NEA) digit digit +  

? q0j digit- q1j

 - q3j 

27

Nichtdeterministischer endlicher Automat

¨ Ubergangsfunktion: δ: Q × (Σ ∪ {ε}) → P(Q)

δ ∗ (q, w) = {q 0 ∈ Q | q ; q 0 }

w

¨ Erweiterte Ubergangsfunktion: δ ∗ : Q × Σ∗ → P(Q)

w

q ; q 0 . . . es gibt einen mit w beschrifteten Pfad von q nach q 0 Akzeptierte Sprache:

L(A) = {w ∈ Σ∗ | δ ∗ (q0 , w) ∩ F 6= ∅}

Definition. Automaten A und A0 sind ¨aquivalent, falls L(A) = L(A0 ).

29

s ∈ (Σ ∪ {ε})

Regul¨ are Menge → NEA

j s - h j

Satz. Zu jeder regul¨aren Sprache L gibt es einen endlichen Automaten A, sodass L = L(A). j h j L = {}:

L = {s}:

L = L1 ∪ L2 :   j j  q0,1A1qf,1 H * H ε ε   H j H h  j j *  HH    ε ε H  j H j j A 2 q q 0,2 f,2  30

Determinisierung (NEA → DEA)

ˆ | qˆ ∩ F 6= ∅} ∪ {ˆ {ˆ q∈Q q } falls ε ∈ L(A) 0 ˆ | qˆ ∩ F 6= ∅} {ˆ q∈Q sonst

ˆ a∈Σ f¨ ur alle qˆ ∈ Q,

Satz. Zu jedem NEA gibt es einen ¨aquivalenten DEA. NEA: A = hQ, Σ, δ, q0 , F i ˆ qˆ0 , Fˆ i, wobei ˆ Σ, δ, DEA: Aˆ = hQ,

=

= {q0 } 

q∈ˆ q

ˆ = P(Q) Q [ ˆ q , a) = δ ∗ (q, a) δ(ˆ qˆ0 Fˆ

¨ ur Tipp: Berechne die Ubergangsfunktion ausgehend von qˆ0 nur f¨ tats¨achlich erreichbare Zust¨ande. 32

L = L1 · L2 :

L = (L1 )∗ :

    j ε - j A2 h j j A1 q q q q 0,1 f,1  0,2 f,2 

  ε   ? j ε - h j ε - j A1 j q q 0,1 f,1  6 ε  

31

Suggest Documents