Aufgabe 3

moep
Windoof-User
Windoof-User
Beiträge: 36
Registriert: 3. Nov 2005 12:32

Aufgabe 3

Beitrag von moep »

Habe da mal eine Frage zur Rückwandlung des AST aus der SSA-Form

Bei uns gibt es vor und nach 'ast2ssa + ssa2ast" entweder identische, oder äquivalente ASTs.

Trotzdem bekommen wir massenhaft den Fehler das der Objektcode nicht identisch ist.

Wir hängen die AST-Teilbäume komplett neu zusammen, das einzige das wir komplett ausser Acht lassen sind die Zusatzinformationen die wir laut Aufgabe 2 bei 'dumpcfg' ignorieren sollten.

Wir umgehen das im Moment dadurch das wir den geänderten AST mittels 'showast' abspeichern und neu einlesen innerhalb von 'ssa2ast'.


Gibt es für das Verhalten eine Erklärung?
Und ist es in Ordnung das wir diesen Umweg nehmen?

moep
Windoof-User
Windoof-User
Beiträge: 36
Registriert: 3. Nov 2005 12:32

Re: Aufgabe 3

Beitrag von moep »

Die Sache hat sich mitlerweile geklärt.

Benutzeravatar
ChNeumann
Windoof-User
Windoof-User
Beiträge: 32
Registriert: 22. Okt 2005 13:20

Re: Aufgabe 3

Beitrag von ChNeumann »

Koenntest du uns bitte mitteilen inwiefern sich das geklaert hat?

Bisher hatten wir die paar Fehler im Tester diesbezueglich ignoriert, in der Hoffnung, dass sich das irgendwie von selbst loest. Jetzt haben wir aber endlich nochmal genauer nachgeforscht und haben trotz identischem AST einige Fehler. Der ganze AST-Kram ist echt zum Kotzen.

moep
Windoof-User
Windoof-User
Beiträge: 36
Registriert: 3. Nov 2005 12:32

Re: Aufgabe 3

Beitrag von moep »

wir haben den jeweiligen procDeclaration Knoten neu angelegt
das hat dann alle querverweise gekillt

haben dann einfach die alten übernommen und lediglich die referenzen umgebogen

ihr müsst da ein wenig aufpassen - es gibt mehr referenzen als ein drawast anzeigt

Tobias
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 132
Registriert: 20. Okt 2004 14:17
Kontaktdaten:

Re: Aufgabe 3

Beitrag von Tobias »

Diese Fehlermeldung (unterschiedliche Objektdateien) kann auf so ziemlich alles mögliche hinweisen. Sie bedeutet, dass euer Compiler anderen Maschinencode erzeugt, wenn man zwischendrin das gerade geladene Programm mit showast/read/check neu einliest. Unter http://www.esa.informatik.tu-darmstadt. ... t/tips#obj habe ich eine etwas ausführlichere Beschreibung hochgeladen.
Wise people talk, because they have something to say; fools, because they have to say something. (Plato)

Antworten

Zurück zu „Archiv“