Rückgewinnung höherer Sprachkonstrukte aus Java Bytecode

Studienarbeit, Timo Ruschin, Oktober 2006

Wenn der Java-Compiler Programme übersetzt, erzeugt er nicht direkt Maschinencode sondern Java Bytecode. Dieser Bytcode bildet den Befehlssatz der Java Virtual Machine, die wie eine Kellermaschine arbeitet. Sie verarbeitet also Operanden nicht direkt in Registern sondern muss deren Werte zunächst auf den Operandenkeller laden. Der Kontrollfluss der abstrakten Maschine wird durch bedingte und unbedingte Sprünge an bestimmte Programmmarken gesteuert.

Diese Struktur macht den Bytecode für einen Java-Programmierer schwer lesbar, weil insbesondere Verzweigungen und Schleifenkonstrukte auf unübersichtliche Folgen von Sprunganweisungen abgebildet werden.

Im Rahmen dieser Studienarbeit sollen bekannte Verfahren zur Rückgewinnung von Schleifenkonstrukten aus Maschinencode untersucht, bewertet und für Java Bytecode umgesetzt werden. Die Arbeit ist eingebettet in ein Projekt zur Übersetzung von Java Bytecode nach C, das in Kooperation mit der Firma ORGA erfolgt. Da die Zielsprache C wie Java über Schleifenkonstrukte verfügt, führen hier die Ergebnisse dieser Arbeit direkt zu einer verbesserten Lesbarkeit des Zielcodes. Eine Einbettung in den bestehenden Übersetzer wäre deshalb sinnvoll, ist aber eher im Rahmen einer Bachelorarbeit vorzusehen.

Genauere Informationen finden Sie in der Ausarbeitung.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013