Aufgabe 3

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

Aufgabe 3

Beitrag von moep » 8. Jun 2010 02:12

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 » 8. Jun 2010 19:22

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 » 30. Jun 2010 15:32

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 » 1. Jul 2010 09:56

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 » 13. Jul 2010 07:31

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“