Ich habe nie einen Debugger verwendet, der ein Programm rückwärts ausführen kann, aber ich würde es gerne tun. Jetzt frage ich mich, ob es viele Beweise und Theorien zur rückwärts laufenden Programmierung gibt, wann und warum ein Programm rückwärts ausgeführt werden kann oder wann und warum nicht?
Intuitiv finde ich, dass der Computer in der Lage sein sollte, das Programm rückwärts auszuführen, wenn er das Programm einmal vorwärts ausgeführt hat und weiß, dass das Programm rückwärts ausgeführt wird, wodurch Zustände des Programms gespeichert werden, die andernfalls verloren gehen und freigegeben werden könnten.
Das Debuggen ist nur ein praktisches Beispiel. Ich interessiere mich auch für die Theorie der Reversibilität. Wenn das Programm rückwärts ausgeführt werden kann, ist das, was das Programm tut, reversibel, nicht wahr?