25.10.2012 Aufrufe

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

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.

4 Implementierung<br />

sc0<br />

sub<br />

add<br />

var0<br />

⇒<br />

Regel r<br />

sc0 −4<br />

Abbildung 4.29: Abbildung einer verallgemeinerten Regel – r0, r1, r2, r3 aus Abbildung<br />

4.28 lassen sich durch symbolische Konstanten in einer Regel r<br />

zusammenfassen.<br />

Die optimalen Muster bilden jedoch die Grundlage für neue Muster und werden als<br />

mögliche rechte Seite von Regeln benötigt. Sie dürfen nicht entfernt werden.<br />

Verallgemeinerung<br />

Wie in den beiden vorherigen Beispielen gezeigt wird, sind Regeln, oder allgemeiner<br />

eine Folge von Regeln R = (r0, . . . , rn), n ∈ N+ problematisch, wenn es möglich ist,<br />

aus einem Muster m durch Anwendung einer solchen Folge R von Regeln wieder das<br />

Ursprungsmuster m zu erzeugen.<br />

Hierzu zunächst eine Definition:<br />

Definition 18 (Regelzyklus). Ein Regelzyklus innerhalb einer Regelmenge RM, besteht<br />

dann, wenn ein Muster m, sowie eine Folge von Regeln R = (r0, . . . , rn), mit r0, . . . , rn ∈<br />

RM existiert, so dass gilt:<br />

m r0 → . . . rn → m<br />

Regelzyklen in Regelmengen stellen bei der Verwendung der Regelmenge, beispielsweise<br />

in einem Übersetzer ein Problem dar. Bei jeder Verwendung einer Regel aus dieser<br />

Menge ist zu prüfen, ob ein Zyklus besteht, da ansonsten eine Terminierung bei der<br />

Anwendung der Regeln nicht garantiert ist. Schon aus diesem Grund ist es sinnvoll, Regelzyklen<br />

bereits beim Erzeugen einer Regelmenge zu verhindern. Darüber hinaus stören<br />

Regelzyklen auch den eigentlichen <strong>Generierung</strong>svorgang wie Beispiel 1 und 2 zeigen. Das<br />

Entfernen optimaler Muster aufgrund eines Regelzyklus ist besonders kritisch. In diesem<br />

Fall ist nicht mehr garantiert, dass es sich bei einem Muster m auf der rechten Seite einer<br />

62<br />

add<br />

sub<br />

add<br />

var0

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!