• Keine Ergebnisse gefunden

GrundlagenderTheoretischenInformatik/EinführungindieTheoretischeInformatikI ReguläreAusdrückealsSuchmusterfür ReguläreAusdrückealsSuchmusterfür grep grep Dank

N/A
N/A
Protected

Academic year: 2021

Aktie "GrundlagenderTheoretischenInformatik/EinführungindieTheoretischeInformatikI ReguläreAusdrückealsSuchmusterfür ReguläreAusdrückealsSuchmusterfür grep grep Dank"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Bernhard Beckert

Institut für Informatik

Sommersemester 2007

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 1 / 106

Dank

Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von

Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal)

Ihnen beiden gilt mein herzlicher Dank.

– Bernhard Beckert, April 2007

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 2 / 106

Reguläre Ausdrücke als Suchmuster für grep

Das Kommandogrep(bzw.egrep) Sucht Wörter (Strings) in Dateien

Benutzt reguläre Ausdrücke als Suchmuster Sehr schnell

Volle Funktionalität mitegrep (UNIX/LINUX)

Reguläre Ausdrücke als Suchmuster für grep

Syntax beigrep

grep Regulärer Ausdruck ww0 ww0

w|w0 w

+

w0 w* w w+ w+

Syntactic Sugar

grep Regulärer Ausdruck [abc] a

+

b

+

c

[a-d] a

+

b

+

c

+

d

. beliebiges Zeichen ausΣ

(2)

Grammatik

Grammatik

Beschreibt eine Sprache

Menge von Regeln, mit deren Hilfe man Wörter ableiten kann Die zu einer Grammatik gehörende Sprache besteht aus den – ableitbaren

terminalen Wörtern

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 59 / 106

Grammatik

Definition 6.6 (Grammatik)

EineGrammatikGüber einem AlphabetΣist ein Tupel G

= (

V

,

T

,

R

,

S

)

Dabei ist

V eine endliche Menge vonVariablen

T

Σeine endliche Menge vonTerminalenmitV

T

=

0/ ReineendlicheMenge vonRegeln

S

VdasStartsymbol

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 60 / 106

Grammatik

Definition 6.7 (Regel) Eine Regel ist ein Element

(

P

,

Q

) ∈ (

V

T

)

V

(

V

T

)

× (

V

T

)

Das heißt:

PundQsind Wörter über

(

V

T

)

Pmuss mindestens eine Variable enthalten Qist beliebig

Bezeichnung:

P: Prämisse Q: Conclusio

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 61 / 106

Grammatik

Schreibweise für Regeln

Schreibweise für Regel

(

P

,

Q

)

: P

GQ bzw. P

Q

Abkürzung für mehrere Regeln mit derselben Prämisse:

P

Q1

|

Q2

|

Q3 für P

Q1

,

P

Q2

,

P

Q3

Konvention (meistens)

VariablenalsGroßbuchstaben TerminalealsKleinbuchstaben

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 62 / 106

(3)

Grammatik

Beispiel 6.8

S

B

B

do begin B end B

A

A

nop A A

ε

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 63 / 106

Rechnung einer Grammatik

Algorithmus

Eingabe:Eine Grammatik

1 aktuellWort:=S (Startsymbol)

2 Wähle eine RegelP

Q, so dassPinaktuellWort vorkommt

3 Ersetze (ein) Vorkommen vonPinaktuellWortdurchQ

4 FallsaktuellWort noch Variablen enthält (nicht terminal), GOTO 2 Ausgabe:Das terminale WortaktuellWort

Beachte Die Berechnung

ist nicht deterministisch (Auswahl der Regel)

kann mehr als ein Ergebnis liefern (oder auch keines) kann in Endlosschleifen geraten

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 64 / 106

Rechnung einer Grammatik

Beispiel 6.9 (Einfache Grammatiken) Welche Wörter kann man ableiten?

Ga

= ({

S

},{

a

}, {

R1

,

R2

},

S

)

R1

=

S

aS R2

=

S

ε

Gab

= ({

S

},{

a

,

b

}, {

R1

,

R2

},

S

)

R1

=

S

aSb

R2

=

S

ε

SeiGgerade

= ({

S

,

S0

},{

0

,

1

,

2

,

3

,

4

,

5

,

6

,

7

,

8

,

9

},{

R1

,

R2

},

S

)

R1

=

S

1S

|

2S0

|

3S

|

4S0

|

5S

|

6S0

|

7S

|

8S0

|

9S R2

=

S0

S

|

ε

Rechnung einer Grammatik

Definition 6.10 (Ableitung, Rechnung) Gegeben:

GrammatikG

= (

V

,

T

,

R

,

S

)

Wörterw

,

w0aus

(

V

T

)

Es gilt

w

= ⇒

Gw0 („wgeht über inw0“) falls

u

,

v

∈ (

V

T

)

P

Q

R w

=

uPv undw0

=

uQv

(4)

Rechnung einer Grammatik

Schreibweise für Ableitung

w

= ⇒

Gw0

falls es Wörterw0

, . . . ,

wn

∈ (

V

T

)

(

n

0

)

gibt mit w

=

w0

wm

=

w0

wi

= ⇒

G wi+1 für 0

i

<

n

Merke: w

= ⇒

G wgilt stets (n

=

0)

Die Folgew0

, . . . ,

wnheißtAbleitungoderRechnung – vonw0nachwn

– inG

– der Längen

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 67 / 106

Vorsicht: Indeterminismus

Beispiel 6.11 (Indeterminismus)

Wir betrachten die GrammatikG

= ({

S

,

B

}, {

a

,

b

,

c

},{

R0

,

R1

,

R2

,

R3

},

S

)

R0

=

S

aBBc

R1

=

B

b R2

=

B

ba R3

=

BB

bBa

Drei Möglichkeiten, das Wortabbaczu erzeugen:

S

= ⇒

R

0 aBBc

= ⇒

R

1 abBc

= ⇒

R

2 abbac S

= ⇒

R

0 aBBc

= ⇒

R

2 aBbac

= ⇒

R

1 abbac S

= ⇒

R

0 aBBc

= ⇒

R

3 abBac

= ⇒

R

1 abbac

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 68 / 106

Vorsicht: Indeterminismus

Warum ist das einFeatureund keinBug?

Erlaubt einfachere Definition von Grammatiken

Für manche Sprachen gibt es keine eindeutige Grammatiken Eine Grammatik beschreibt dieStrukturder Wörter.

Ein Wort kann mehrere mögliche Strukturen haben.

Fürnatürliche Sprachenbraucht man das unbedingt:

Manche Sätze sind mehrdeutig (in ihrer Grammatik), also müssen auch die Grammatiken mehrdeutig sein!

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 69 / 106

Vorsicht: Indeterminismus

Beispiel 6.12 (Mehrdeutige Grammatik natürlichsprachlicher Sätze) Time flies like an arrow.

Fruit flies like a banana.

Beide Sätze haben zwei mögliche grammatische Strukturen.

Erst unser semantisches Verständnis wählt eine aus.

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 70 / 106

(5)

Erzeugte Sprache, Äquivalenz

Definition 6.13 (Erzeugte Sprache) Gegeben: Eine GrammatikG

Die vonGerzeugte SpracheL

(

G

)

ist die Menge allerterminalenWörter, die durchGvom StartsymbolSaus erzeugt werden können:

L

(

G

)

:=

{

w

T

|

S

= ⇒

Gw

}

Definition 6.14 (Äquivalenz)

Zwei GrammatikenG1

,

G2heißenäquivalent gdw L

(

G1

) =

L

(

G2

)

B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 71 / 106

Referenzen

ÄHNLICHE DOKUMENTE

Professor für Linguistik und Philosophie am MIT Bedeutender Linguist. Bedeutender Beitrag

Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder nicht..Q. Probleme und Algorithmen

Determinierte und indeterminierte endliche Automaten sind äquivalent Pumping Lemma erlaubt, eine Sprache als nicht rational nachzuweisen.. Es gibt Algorithmen, die Probleme

Theoretischen Informatik: Indetermnierte endliche Automaten (NDEAs) SS 2007 140 / 219... Theoretischen Informatik: Indetermnierte endliche Automaten (NDEAs) SS 2007 141

L ist rational heißt: es gibt einen endlichen Automaten, der L akzeptiert L ist regulär heißt: es gibt eine linkslineare Grammatik für L. Theoretischen Informatik: Endliche

Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von. Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der

Die durch endliche Automaten akzeptierten Sprachen sind genau die, die man durch reguläre Ausdrücke beschreiben kann. Theoretischen Informatik: Rational = Reguläre Ausdrücke SS 2007

Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 269 / 356.. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 270