This makes "music" of a sort, especially when the program running does many things repetitiously. In the early days of computing, multiplication was implemented as repeated addition. Memory access also had a particular pattern of repetitive circuitry.
This provided a base repetition that humans recognize. When code was stuck in a loop, or repeatedly accessed the same range of memory locations, the operators could hear the pattern and know something was wrong.
A while back i read about a guy who had set up his phone so that it would play certain tones when it detected APs while walking around town. This based on their signal strenght, security settings etc.
This got me thinking back to my analog modem days, and how i could tell if i was getting a good connection or not depending on the noise it would make during the handshake.
What i was thinking was setting up a sniffer, and hook that up so certain tones would play based on packets passing by.
I sometimes wonder if modern computing is too reliant on one human sense, vision. More mechanical devices can give us early warnings about developing issues based on sounds and vibrations.
EDSAC II had a speaker to help with debugging and this "feature" was also incorporated into versions of the LEO, the worlds first computer for business applications:
http://en.wikipedia.org/wiki/LEO_%28computer%29
I wonder if something similar could be created for the state machines in the article - giving each state it's own tone?
Here's an article about it, with photos [1]. I remember reading it in BYTE, years ago.
https://archive.org/stream/byte-magazine-1978-02/1978_02_BYT...
Edit: I'll bet it's no longer possible to do this on modern CPUs; either the memory busses are inaccessible (SoC) or so highly optimised (DDR4) that it's infeasible to probe them without disrupting the transmission line.
[1] Ciarcia, S. "A Penny Pinching Address State Analyzer". BYTE 3(2), pp. 6--12. February, 1978.
See the "Update on ROM extraction and decryption" section here: http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html
More info here: http://www.xenatera.com/bunnie/proj/anatak/AIM-2002-008.pdf
And in his book: http://www.nostarch.com/xboxfree
I think a deep visual debugging tools are going to be 'built in' in future in much the same way that HTTP primitives were recently with node and string manipulation was with Python 2.
Although it sounded like a really cool idea, it didn't take off. Seems text is best (maybe because it supports incompatible hierarchies better).
https://github.com/r0nk/ward/blob/master/hello.bf
https://github.com/github/linguist/blob/master/lib/linguist/...
Just not in Ace (their code editor).
It doesn't count it in language statistics, though.
http://mosermichael.github.io/cstuff/all/pooh-lan/2012/12/11...
here you can get an execution trace of the program: each expression is displayed as it evaluates:
http://mosermichael.github.io/cstuff/docs/html/pooh/example/...
(they used to have something like that in some scheme interpreters, i used this featue a lot at the time)
It was quite an involved & fun project as we used Java VM Tool Interface directly instead of using JDI and the layout algorithms for the diagrams are quite fancy too :)
[1] http://www.jbixbe.com [2] http://www.jbixbe.com/VisualTour.html [3] http://www.jbixbe.com/download/jar/jbixbe.jar
+1
My databases at work snapshot out their schemas to graphviz to create diagrams of all the FK relationships automatically every day, which I find helpful, and more or less inspired this idea.