![Page 1: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/1.jpg)
Lexikalische Analyse
Stephan Poll
![Page 2: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/2.jpg)
2
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 3: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/3.jpg)
3
Einordnung und Funktion der lexikalischen Analyse
Lexikalische Analyse
Erste Phase des Analyseteils im Rahmen des Compilerbaus
Modul des Compilers : Scanner
Verschränktes Arbeiten mit dem Modul für die syntaktische Analyse
![Page 4: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/4.jpg)
4
Einordnung und Funktion der lexikalischen Analyse
Aufgaben eines Scanners:
Transformieren des Eingabestroms
Erkennen von Elementen der Quellsprache
Codieren der erkannten Elemente
Output :
Strom atomarer Einheiten
zur Weiterverarbeitung durch Parser
![Page 5: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/5.jpg)
5
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 6: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/6.jpg)
6
Grundsymbole
Was sind Grundsymbole?
Grundsymbole : zu erkennende Elemente der Zielsprache
Art und Anzahl muss definiert werden
Formale Definition erfolgt mit Hilfe von regulären Ausdrücken
![Page 7: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/7.jpg)
7
Grundsymbole
Beispiel:
if (a < 0) a=a+1;
Mögliche Strukturierung
Keywords if
Identifier a
Delimiter ( , + , ….
Literals 1
![Page 8: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/8.jpg)
8
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 9: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/9.jpg)
9
Reguläre Sprachen und reguläre Ausdrücke
Reguläre SpracheDie vom Scanner erkannten Einheiten bilden eine nichtleere reguläre
Sprache
Beschreibung erfolgt über reguläre Ausdrücke
![Page 10: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/10.jpg)
10
Reguläre Sprachen und reguläre Ausdrücke
Regulärer AusdruckJedes Element eines Alphabets ist ein regulärer Ausdruck und
beschreibt eine reguläre Sprache
Verknüpfung einzelner Ausdrücke zu neuem Ausdruck
reguläre Ausdrücke r und s:
(rs)
(r|s)
r*
![Page 11: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/11.jpg)
11
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 12: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/12.jpg)
12
Endliche Automaten
Liegen als formales Modell der Erkennung von Grundsymbolen zu
Grunde
Beschreiben Verhalten mit Hilfe von Zuständen und Aktionen
Ein Automat ist endlich, wenn die ihm zu Grunde liegende
Zustandsmenge endlich ist
Arten
Nichtdeterministische endliche Automaten
Deterministische endliche Automaten
![Page 13: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/13.jpg)
13
Endliche Automaten
Nichtdeterministische Endliche AutomatenZustandsübergänge unter ε
Folgezustand nicht immer eindeutig
Ein NEA ist ein 5-Tupel M = (Σ,Q, Δ,q0,F)
Σ : Eingabealphabet
Q : Zustandsmenge
Δ ⊆ Q ⅹ (Σ ⋃ {ε}) ⅹ Q : Übergangsfunktion
q0 ∈ Q : Startzustand
F ⊆ Q : Endzustände
![Page 14: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/14.jpg)
14
Endliche Automaten
Deterministische endliche AutomatenKeine Übergänge unter ε
Folgezustand eindeutig
Übergangsrelation als partielle Funktion δ:
δ : Q ⅹ Σ → Q
![Page 15: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/15.jpg)
15
Darstellung von Automaten
Übergangsdiagramm
Kantenmarkierter, endlicher und
gerichteter Graph
Beispiel:
regulärer Ausdruck
r = (a|b)+c
0
1
2
a
b
b
a
3
c
c
ab
![Page 16: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/16.jpg)
16
Darstellung von Automaten
ÜbergangstabelleBeispiel: r = (a|b)+c
ZustandEingabesymbol
a b c
0 1 2
1 1 2 3
2 1 2 3
0
1
2
b
a
a
b
3
c
c
ab
![Page 17: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/17.jpg)
17
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 18: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/18.jpg)
18
Erkennen von Grundsymbolen mit endlichen Automaten
Zu jedem regulären Ausdruck lässt sich ein endlicher Automat
konstruieren
Eingabeüberprüfung durch Simulation
Mögliches Vorgehen
Konstruktion NEA Simulation NEA
Konstruktion NEA Konstruktion DEA Simulation DEA
Konstruktion NEA Konstruktion DEA Minimierung DEA
Simulation DEA
Konstruktion DEA ggf. Minimierung Simulation DEA
![Page 19: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/19.jpg)
19
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 20: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/20.jpg)
20
Konstruktion eines NEA aus einem regulären Ausdruck
Satz: “Zu jedem regulären Ausdruck r gibt es einen NEA, der die von r
beschriebene reguläre Menge akzeptiert“
Konstruktion aus einem gegebenen Ausdruck r:
Für jedes Symbol a aus dem r zu Grunde liegenden Alphabets ein
Teilautomat:
i fa
![Page 21: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/21.jpg)
21
Konstruktion eines NEA aus einem regulären Ausdruck
Konstruktion Teilautomat für ε
Regeln für die Kombination(s|t)
i f
ε
N(s)
N(t)
ε ε
ε
![Page 22: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/22.jpg)
22
Konstruktion eines NEA aus einem regulären Ausdruck
Regeln für die Kombination (weiter)(st)
i N(s) N(t) f
![Page 23: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/23.jpg)
23
Konstruktion eines NEA aus einem regulären Ausdruck
Beispiel:
Regulärer Ausdruck r = y(x|z)*yz
Vorgehen:
1.: Erstellen der Teilautomaten für x,y,z
und ε
i fx
i fy
i fz
i fε
![Page 24: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/24.jpg)
24
Konstruktion eines NEA aus einem regulären Ausdruck
2. Kombination von den NEA für y
und εy
0ε
1 2
3. NEA für (x|z)
4ε
5 6
7 8ε ε
ε
x
z
9
![Page 25: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/25.jpg)
25
Konstruktion eines NEA aus einem regulären Ausdruck
4. NEA für (x|z)*
3ε
5 6
7 8ε ε
ε
x
z
4 9εε 10
ε
ε
![Page 26: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/26.jpg)
26
Konstruktion eines NEA aus einem regulären Ausdruck
5. NEA für y(x|z)*yz
2
ε
3ε
5 6
7 8ε ε
ε
x
z
4 9
yε
z11 ε 12
ε
13
10
0 ε 1y
ε
ε
![Page 27: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/27.jpg)
27
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 28: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/28.jpg)
28
Simulation eines NEA
Idee
NEA N zu einem regulären Ausdruck r
Einlesen eines Inputstroms
Ermitteln des Zustandsverlaufs
Prüfen auf akzeptierten Zustand
Problem
Nichtdeterminiertheit
![Page 29: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/29.jpg)
29
Simulation eines NEA
Lösung
Ermitteln aller möglichen Folgezustände
Vorgehen
Gegeben: aktueller Zustand z (oder Menge Z) und nächstes
Eingabesymbol a
move (z , a) = Z
ε-clousure (Z) = Z2
Nach Ende der Eingabe: Prüfen, ob Menge von möglich Zuständen
einen akzeptierten Zustand enthält
![Page 30: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/30.jpg)
30
InhaltI. Einordnung und Funktion der lexikalische Analyse
II. Grundlagen
II.1 Grundsymbole
II.2 Reguläre Sprachen und reguläre Ausdrücke
II.3 Endliche Automaten
III. Erkennung von Grundsymbolen mit endlichen Automaten
III.1 Konstruktion eines NEA aus einem regulären Ausdruck
III.2 Simulation eines NEA
III.3 Konstruktion eines DEA aus einem NEA
III.3 Minimierung eines DEA
III.4 Simulation eines DEA
IV. Implementierung eines Scanners
V. Zusammenfassung
![Page 31: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/31.jpg)
31
Konstruktion eines DEA aus einem NEA
Satz: „ Wird eine Sprache L von einem NEA akzeptiert, so gibt es einen
DEA der L akzeptiert.“
Prinzip:
Konstruktion eines DEA aus NEA durch Bildung von
Zustandsgruppen
![Page 32: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/32.jpg)
32
Konstruktion eines DEA aus einem NEA
Algorithmus
1. Menge DZ = ε-clousure (s0)
2. Prüfen, ob unmarkierter Zustand in DZ wenn ja: weiter, sonst 7.
3. Nimm ersten Zustand Z aus Z der nicht markiert ist
4. Markiere Z
5. Für jedes Eingabesymbol s:
i. Zn = ε-clousure ( move ( Z , s) ) falls Zn nicht in DZ ii. sonst iii.
ii. Zn zu DZ als unmarkierter Zustand
iii. UT [ Z , s ] = Zn
6. Gehe zu 2.
7. Ende
![Page 33: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/33.jpg)
33
Konstruktion eines DEA aus einem NEA
Beispiel
2
ε
3ε
5 6
7 8ε ε
ε
x
z
4 9
yε
z11 ε 12
ε
13
10
0 ε 1y
ε
ε
![Page 34: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/34.jpg)
34
Konstruktion eines DEA aus einem NEA
Beispiel (weiter)
A = ε-clousure (0) = {0,1}
A: Schritt 5. für y
B = ε-clousure ( move ( A , y ) ) = {2,3,4,5,7,10}
B: Schritt 5. für x,y und z
x C = ε-clousure ( move ( B , x ) ) = {4,5,6,7,9,10}
y D = ε-clousure ( move ( B , y ) ) = {11,12}
z E = ε-clousure ( move ( B , z ) ) = {4,5,7,8,9,10}
…
![Page 35: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/35.jpg)
35
Konstruktion eines DEA aus einem NEA
ZustandDEA
Zustandsmenge
NEAA {0,1}B {2,3,4,5,7,10}C {4,5,7,8,9,10}D {11,12}E {4,5,7,8,9,10}F {13}
F
A
D
B
C
E
x
z
x
z x
y
y
y
z
y
z
![Page 36: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/36.jpg)
36
Minimierung eines DEA
Algorithmus
1. Konstruktion der Ausgangspartition P
2. Für jede Gruppe G in P
für jedes Eingabezeichen a
i. Überprüfen, ob jeder Zustand in G unter a Übergang in selbe Gruppe G2 hat
wenn nein, weiter, sonst 3.
ii. G Zerlegen , weiter mit i.
3. Neue Partition P2
![Page 37: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/37.jpg)
37
Minimierung eines DEA
Algorithmus (weiter)
4. Falls P2 identisch mit P weiter, sonst 2. mit P = P2
5. Repräsentanten wählen
![Page 38: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/38.jpg)
38
Minimierung eines DEA
Beispiel
P : G1 = {A,B,C,D,E} , G2 = {F}
F
A
D
B
C
E
x
z
x
z x
y
y
y
z
y
z
![Page 39: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/39.jpg)
39
Minimierung eines DEA
Beispiel (weiter)
G1 : Trennung durch z
G1.1 = {A,B,C,E} G1.2 = {D}
G1.1 : Trennung durch y
G1.1.1 = {A} G1.1.2 = {B,C,E}
Finale Partition:
Pneu : G1.1.1 = {A} , G1.1.2 = {B,C,E} , G1.2 = {D} , G2 = {F}
![Page 40: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/40.jpg)
40
Simulation eines DEA
Simulation durch „Nachschlagen in der Übergangstabelle“
Einzelne Symbole einer Eingabe sequentiell einlesen
Aktuellen Zustand festhalten
Überprüfen, ob nach vollständigem Einlesen aktueller Zustand ein
Endzustand ist
![Page 41: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/41.jpg)
41
Implementierung eines Scanners
2 Möglichkeiten der Implementierung
Verwendung eines Scannergenerators
Definieren der regulären Ausdrücke in festgelegter Terminologie
Festlegen der Aktionen, die bei Erkennen von jeweiligen Grundsymbolen
durchgeführt werden
Beispiel für einen Generator: LEX
Manuelle Implementierung
Überlegungen bzgl. Reihenfolge und Struktur der Automaten
Konstruktion von komplexen Automaten zur Überprüfung von mehreren
regulären Ausdrücken
![Page 42: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/42.jpg)
42
Zusammenfassung
Lexikalische Analyse
Zerlegen des Eingabestroms in atomare Einheiten
Erkennen von Einheiten auf Basis vordefinierter Struktur reguläre
Ausdrücke
Konstruktion von endlichen Automaten zu regulären Ausdrücken
Simulation der Automaten zur Überprüfung einer Eingabe
![Page 43: Lexikalische Analyse Stephan Poll. 1 Inhalt I.Einordnung und Funktion der lexikalische Analyse II.Grundlagen II.1 Grundsymbole II.2 Reguläre Sprachen](https://reader036.vdocuments.net/reader036/viewer/2022062310/570491c01a28ab14218d8a9c/html5/thumbnails/43.jpg)
43
Das war's….
Fragen ?