05.11.2012 Aufrufe

3. Die Code-Morphing-Software - TU Bergakademie Freiberg

3. Die Code-Morphing-Software - TU Bergakademie Freiberg

3. Die Code-Morphing-Software - TU Bergakademie Freiberg

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

verändert werden. Damit wäre für jeden Schleifendurchlauf ein Aufruf des Interpreters nötig.<br />

<strong>Die</strong> Übersetzung scheint nun zunächst etwas untypisch. Das vorherige label dient zum Auslesen des Offsets. <strong>Die</strong><br />

Adresse [label+1] enthält nun bei jedem Durchlauf den aktuell zu lesenden Speicherbereich. <strong>Die</strong> Daten werden also<br />

direkt aus dem <strong>Code</strong>-Stream gelesen.<br />

<strong>Die</strong>ses Verfahren vermeidet häufige Neuübersetzungen trotz ursprünglicher Veränderung des <strong>Code</strong>s, es ist jedoch<br />

zusätzlich mit Self Revalidating oder Self Checking zu Überprüfen, ob sich der <strong>Code</strong> selbst verändert hat.<br />

4.<strong>3.</strong>6 Translation Groups<br />

Beim letzten Verfahren zur Vermeidung von Neuübersetzung geht man davon aus, dass es lediglich eine geringe Anzahl<br />

verschiedener Versionen des modifizierten <strong>Code</strong>s gibt. Ist dies der Fall, so ist es sinnvoll die alten Versionen des <strong>Code</strong>s<br />

für die spätere Verwendung zu speichern.<br />

<strong>Die</strong> <strong>Code</strong>-<strong>Morphing</strong>-<strong>Software</strong> kann diese Übersetzungen in sogenannten Translation Groups hinterlegen. Dabei steht die<br />

letzte verwendete Version am Anfang der Liste.<br />

Trifft die CMS auf einen <strong>Code</strong>block wird zunächst überprüft, ob die erste Version gültig ist. Schlägt dies fehl, so wird<br />

der Rest der Liste nach der passenden Version durchsucht. Wird ein passender <strong>Code</strong>block gefunden so wird er an den<br />

Anfang der Liste gebracht und ausgeführt. Findet sich in der gesamten Liste ein passender Block, so wird der <strong>Code</strong> neu<br />

übersetzt und der neue Block an den Anfang der Liste verschoben.<br />

20

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!