Begriff gesucht

Ich fange mal mit einem Beispiel an: Ein Compiler übersetzt ja ein Programm von einer Hochsprache in Maschinencode (jetzt mal ganz platt ausgedrückt). Operational gesehen ist das das Gleiche. Aber dabei geht (insbesondere, wenn man Optimierungen anwendet), Struktur verloren. Das führt dann beispielsweise dazu, dass Debugger nicht mehr richtig funktionieren (oder jedenfalls sehr viel schwerer zu schreiben sind). Wenn man das vermeidet und dafür sorgt, dass die Information aus dem Hochsprachenprogramm auch auf Maschinencodeebene verfügbar ist – wie könnte man das nennen? “Semantikerhaltende Transformation” trifft es nicht – die Semantik (im Sinne von Ausführungssemantik) bleibt ja erhalten. Vielleicht “strukturerhaltende Transformation”?

Oder vielleicht gibt es sogar Literatur, die sich mit dieser eher philosophischen Frage befasst?

3 thoughts on “Begriff gesucht

  1. “Semantikerhaltende [...] trifft es nicht, die Semantik [...] bleibt ja erhalten”.

    Hast du getrunken?

  2. Da die Struktur nur bei Optimierungen verloren geht, würde ich vielleicht etwas wie “optimisation-resistant debugging information” nehmen. Das versteht jeder. Ist zwar lang und unschön, aber bringt es auf den Punkt.

    Ansonsten, was du meinst, ist eher die “Struktur”, oder genauer: die Branches.
    Wenn nur die Branches, für die man Breakpoints gesetzt hat, erhält, dann ist das Programm für diese Bereiche problemlos debuggbar. Wenn dir das beim Begriff schon ausreicht, sag doch einfach “selective branch retaining”.

    Es ist schwierig, für dein Konzept einen guten Begriff zu finden, weil man immer zwischen zwei Extrema hin- und herspringt, wie du schon bei meinen Beispielen sehr gut siehst. Entweder man fasst es ganz allgemein und wird dadurch unpräzise, oder du beschränkst das auf ein Core-Konzept und ignoriert damit viele andere Features. Ich wüsste auch nicht, wofür ich mich da entscheiden sollte.

    Das ganze erinnert mich übrigens sehr stark an DWARF, die ja genau das gleiche versuchen, d.h. Debugging-Informationen generieren, die auch bei starken Optimierungen noch etwas wert sind. Ich bin mir ziemlich sicher, dass die dafür auch einen eigenen Begriff haben. Die haben für fast alles ihre eigenen Abkürzungen eingeführt. Bin ich froh, dass ich damit nicht mehr so viel zu tun habe. CFI, LEB128, DIE, CIE, CFA, … Bei den Abkürzungen kein Wunder, dass ich bis heute nur 10% von alldem verstanden habe. :)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>