2

I would like to be able to give students an awareness of exactly what happens during program execution inside a modern computer - e.g. use of memory addresses, references, stack, heap and so on.

Ideally I'd like for them to be able to play with some kind of demo where a simple application (e.g. calculator, rudimentary database etc.) runs and can be paused and the state of the machine running the program viewed at quite a low level via a 'pretty' GUI.

Does such an application exist? And if not, could any super-coders advise on the feasibility of writing a piece of software like this? The target audience are probably 1st year Comp Sci students learning a modern OO language (C#, Java ideally).

EDIT:

I thought this had gone cold but someone posted today so I thought I'd better update...

I should probably have put the words 'Turing' and 'machine' into this question. I think people thought I wanted to debug Windows or something when actually I was just thinking of TMs. This is a pretty good simulator, though not pretty by today's standards.

If anyone knows of any others, I'd appreciate you posting a link. Thanks.

trincot
  • 317,000
  • 35
  • 244
  • 286
immutabl
  • 6,857
  • 13
  • 45
  • 76
  • 1
    Don't know whether it exists yet, but as for feasibility, it seems that you would essentially have to write a compiler, which could take a long time. – Zhehao Mao Jun 27 '11 at 12:43
  • There are plenty of computer "simulator" and "inspector" programs around, but I don't think they will answer your question. If you want to honestly simulate a computer, there are virtualization software like VMware, Bochs, QEMU, etc. If you want to examine the instructions that an application executes, you can use a debugger like gdb. In either case, the problem is that you will be overwhelmed by the number of instructions it takes to do anything meaningful. – Nayuki Jul 15 '11 at 19:29
  • I was wondering if it would be possible to do something at the application-code level and was considering the use of reflection in Java and C# to drive a visual representation of the classes and data exchange. I'd appreciate your thoughts. – immutabl Jun 26 '12 at 09:40

1 Answers1

0

I've been googling around for the same sort of thing (ability to see the heap and stack in real time) and came across this:

http://www.pythontutor.com/visualize.html#mode=edit

Claudiu
  • 155
  • 1
  • 3
  • 14