| I think this is possibly related to something I was thinking about when dealing with graph traversal in Python, wanting a debug tool that let me snapshot each step but then diff the watched variables. Being able to move back and forth to see the state change, and the connections so I could determine what was influencing the state.
This was because no matter how hard I tried, I kept running into variables that I was watching that appeared to be the same reference, have different values (so I know I was referring to something wrong, but could not for the life of me figure it out, and though if I only had a way to step/trace and do this visually like an AST that highlights changed values and you could see back to its root where it's actually being modified visually) I found out there's a thing called "deterministic debugging" (and the biggest known example afaict is rr: https://rr-project.org/ Apparently MS has a time-travel debugger... I pictured the AST being populated and repopulated via the steps, and the ability to diff changes over time. Here's a wiki on various systems, though most of these seem to be typical text based "trace" options. https://en.wikipedia.org/wiki/Time_travel_debugging
(I hazard that this may be similar to some of the power of Common Lisps REPL, but could be wrong) I found a professor at one point doing some research and he seemed to have given up without more funding. I thought I had it bookmarked, but am unable to find it right now. If I can remember (ha) I'll see if I can find it tomorrow. He had the most interesting approach that seemed closest to what I think you (and possibly I) are thinking, with propagation through the tree (I don't think I was picturing editing the graph directly per se - but that would be a cool idea). Have you looked into LightTable or Brett Victor's work at all?
http://lighttable.com/ (somewhat tangentially related, I think?) Sorry this is so scattered I need to hit the hay LOL. |
I've seen light table years ago and thought it looked really neat, but I haven't looked into it much as it wasn't directly applicable to my environments. But, probably worth a look for ideas.
On the topic of time-travel debugging, have you seen the demo: https://www.youtube.com/watch?v=72y2EC5fkcE (Tomorrow Corporation Tech Demo) Very impressive, worth a watch.