3. Die Code-Morphing-Software - TU Bergakademie Freiberg
3. Die Code-Morphing-Software - TU Bergakademie Freiberg
3. Die Code-Morphing-Software - TU Bergakademie Freiberg
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