OpenExVis development

OpenExVis is as a free software project and open for all to contribute.

There are some non-coding things where you can help. These include testing the code, giving feedback and helping with the project website. If you'd like to help with any of these, please join the openexvis-devel mailing list and introduce yourself there.

Developer documentation

Here's the documentation aimed at developers explaining my thoughts about the inner workings of OpenExVis. The best and most current documentation is the code in the CVS.

The program flow

Here's a flowchart describing how the program was originally planned to work. This is not exactly how things work at the moment, look at the code in CVS to see the current situation:

The general idea is that the translator receives information from the interpreter of a specific language and sends the relevant data forward to the visualizer in language-independent format. Thus, to add new languages to visualize, it's simply a matter of writing a new translator.

The visualizer then tells the visualization area what to display, according to the instructions regarding e.g. speed given to it from the control panel. If the step visualized creates any output, the visualizer sends it to the output area. The visualizer also gives a notice to the code editor telling it to mark the line being visualized.

After a visualization step is done, the visualizer sends a notification to the interpreter through the translator. The interpreter then executes the next piece of code and sends the results to the translator, thus starting another visualization round.

The visualization area could in the future support several different types of visualization (e.g. showing constructs like graphs and linked lists) and the code editor could mark things in descriptive ways (e.g. drawing circular arrows to mark a loop) instead of just highlighting lines. I see these as longer-term goals, though, and plan to first focus on the goals set forth in my application so I have a better chance of meeting them ;)