Leonardo

LEONARDO: A C Programming Environment for Reversible Execution and Software Visualization. Leonardo is an integrated environment for program development and software visualization. It includes several modules such as an ANSI C compiler, a text editor, a graph editor, and a virtual machine to run programs and view animations. You can use these modules separately, or together according to your necessities. With Leonardo you can do the following: teach and understand a large variety classical algorithms; edit graphs; edit, compile, run and debug C programs; create your own animations. Leonardo is provided with several examples of program animations that you may simply want to enjoy. These examples range from the implementation of classical algorithms (sorting algorithms, graph algorithms etc.) to graphical demos and even games such as Tetris and Checkers.