07.02.2013 Aufrufe

Vorlesungsskript - Institut für Programmierung und Reaktive Systeme

Vorlesungsskript - Institut für Programmierung und Reaktive Systeme

Vorlesungsskript - Institut für Programmierung und Reaktive Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3 Syntaktische Analyse<br />

S0 = { [S ′ → .S],<br />

[S → .L=R],<br />

[S → .R],<br />

[L → .∗R],<br />

[L → .id],<br />

[R → .L]}<br />

S1 = { [S ′ → S.]}<br />

S2 = { [S → L.=R],<br />

[R → L.]}<br />

S3 = { [S → R.]}<br />

S4 = { [L → ∗.R],<br />

[R → .L],<br />

[L → .∗R],<br />

[L → .id]}<br />

S5 = { [L → id.]}<br />

S6 = { [S → L=.R],<br />

[R → .L],<br />

[L → .∗R],<br />

[L → .id]}<br />

S7 = { [L → ∗R.]}<br />

S8 = { [R → L.]}<br />

S9 = { [S → L=R.]}<br />

Abbildung 3.20: Zustandsmenge des LR-DEA der Grammatik zur Beschreibung der<br />

C-Zuweisung aus Beispiel 43.<br />

Nach Anwendung des Verfahrens zur Berechnung des LR-DEAs auf Seite 92 erhalten<br />

wir die in Abbildung 3.20 angegebene Zustandsmenge (zur Verbesserung der Lesbarkeit<br />

lassen wir die Mengenklammern bei einelementigen Vorausschaumengen weg).<br />

Aufgr<strong>und</strong> der Differenzierung nach Vorausschaumengen werden die Zustände des LR-<br />

DEA in mehrere Zustände des LR(1)-Automaten aufgesplittet. Zum Beispiel wird der<br />

Zustand S4 aus Abbildung 3.20 in die Zustände I4 <strong>und</strong> I11 in Abbildung 3.21 aufgeteilt,<br />

deren Items dieselben Kerne, aber unterschiedliche Vorausschaumengen besitzen. Der<br />

LR(1)-Automat ist in Abbildung 3.22 dargestellt.<br />

Daher ergeben sich die folgenden Beziehungen zwischen LR(0)- <strong>und</strong> LR(1)-Items:<br />

S0 ∼ I0 S1 ∼ I1 S2 ∼ I2 S3 ∼ I3 S4 ∼ I4 <strong>und</strong> I11<br />

S5 ∼ I5 <strong>und</strong> I12 S6 ∼ I6 S7 ∼ I7 <strong>und</strong> I13 S8 ∼ I8 <strong>und</strong> I10 S9 ∼ I9<br />

Im LR-DEA in Abbildung 3.20 tritt das LR(0)-Item [R → .L] in den Zuständen S0<br />

<strong>und</strong> S4 auf. Durch das Shiften eines L gelangen wir aus beiden Zuständen in den<br />

Zustand S8. In Abbildung 3.21 unterscheiden sich die LR(1)-Items [R → .L, $] in<br />

I0 <strong>und</strong> [R → .L, {=, $}] in I4 durch ihre Vorausschaumengen. Aus I0 kann ein L-<br />

Übergang nach I10 erfolgen, aus I4 ein Übergang nach I8. Befinden wir uns also im<br />

Zustand I10, wissen wir eindeutig, daß wir aus I0 gekommen sind. Befinden wir uns<br />

im Zustand I8, sind wir aus I4 gekommen. Auf diese Weise enthalten die Zustände<br />

106

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!