5 ms·
Project: I'm building an 'abstract visual debugger,' which aims at clarifying the behavior of algorithms under execution by letting you watch the data they're m
by westoncb 10y ago
Project: I'm building an 'abstract visual debugger,' which aims at clarifying the behavior of algorithms under execution by letting you watch the data they're manipulating.
Screen: http://symbolflux.com/images/avdscreen.png http://symbolflux.com/images/avdscreen.png
Quite outdated video: https://youtu.be/sdEo4v2yivM https://youtu.be/sdEo4v2yivM
It works by monitoring data structures (and soon general objects!) in your code, and sending operation data (e.g. element added/removed) to the server app which does all the actual visualization. Different clients can be written for different languages, though I've only written one for monitoring Java code so far (but the clients are semi-trivial to build).
Problem: a lot of what's difficult in programming is that you can't watch the 'state' of your program as its running; we approximate it with print statements etc.—but there is no easy way to view trees, graphs, tables, lists, hashmaps, etc. especially when they are being actively modified by a program.
I'm hoping to have an alpha ready in a week or two. Back to work!
Edit: split into Project/Problem format.
- loxias 10y agoThis is a fantastic idea!! Do you have a github link or a project page I can bookmark and periodically check on? How hard would it be to adapt to C and/or C++?
- westoncb 10y ago> How hard would it be to adapt to C and/or C++? I don't think it would be particularly difficult. I can tell you more about what the process would be like if you're curious. Project page is here for now: http://symbolflux.com/projects/avd http://symbolflux.com/projects/avd (Everything there is unfortunately quite out of date because my initial work on it was ~2.5 years ago, and In the past 3 months I've picked it up again and ran with it :) I'll update the page soon though.)
- westoncb 10y agoAlso, here is the source for the Java client: https://github.com/westoncb/DSViz-Java-Client https://github.com/westoncb/DSViz-Java-Client It's still a work in progress, but I plan on wrapping things up for an initial release over the next couple of weeks—at that point, I'll write a tutorial explaining the structure of the client and principles involved in writing a new one etc. Edit: forgot to mention, I don't have plans for open-sourcing the server at the moment since the plan is to sell it so that I can continue working on it.
- ngzhian 10y agoYou might be interested in this: https://visualgo.net https://visualgo.net