AAPS Home page | Eliot | Jeliot | Excel animations
A few years ago we implemented an animation environment called Halsa (Helsinki Animation Library for String Algorithms) for teaching string-algorithms. This system contained a selection of ready-made animations for a set of algorithms. Later we produced tools for generating algorithms, namely two systems: Halsa++ and Eliot. Eliot, our latest effort, presents two important contributions to the field of program visualization: ease of use and innovative implementation technique.
There are two phases in using Eliot. First the animator writes the algorithm in Eliot-C language, which is a slightly modified version of the C programming language. This Eliot-C program is given as input to Eliot, which extracts and displays all the data objects used in the source code. The animator interacts with the graphical user interface, which provides a program window and windows for setting the appearance and layout of program data objects with a variety of possibilities.
In the second phase Eliot generates an executable program from the Eliot-C input code. This program, which can be run within the user interface, produces the animation running in real time, (i.e.in parallel with the execution of the program) as an intentional side-effect. New animated items are created as regular variables, so the appearance of the visualization is determined while the program is running.
Eliot supports multiple windows, stages, to be displayed simultaneously, each having its own characteristics for the same animated data objects. Eliot allows the animator to define the animation charasteristics independently for each data object on each stage. For example, it is possible to display the components of an array as precise digits on one stage and as vertical bars on another, allowing perhaps a better overall view of the data.
Although still being a prototype, Eliot has reached a level where it can be used as a teaching tool and we are experimenting with it in teaching at our department. Although the current version of Eliot is still limited in features, it has proved that the animation concept is useful for visual debugging as well.