Work in progress

Leonardo is still work in progress: we are currently extending the system in several directions. New features and extensions will eventually appear in future versions of Leonardo, after an accurate testing that will ensure us not to distribute unsafe software. Some relevant extensions are presented below. If you have any suggestions, ideas for further improvements, or you would like to see new features supported by Leonardo, please send e-mail to leonardo@dis.uniroma1.it.

Leonardo Web: a Java animation player
We are currently working on a Java animation player (Leonardo Web) designed for viewing animations realized with Leonardo IDE. To support post-mortem animation, Leonardo IDE 3.5 will be able to export smooth animations as text files readable by Leonardo Web.

Leonardo IDE 4.0: a multi-platform version of Leonardo
We have been asked many times about a multi-platform version of Leonardo. This is a challenging task that has already started in the mid 1998 and will eventually give rise to a brand new version of Leonardo. This new version, Leonardo IDE 4.0, will be mostly written in C and will be available for both Mac and PC. New features of Leonardo IDE 4.0 will include a rock solid multi-threading time-sharing virtual execution environment and a strongly modular design. Some modules that will be part of Leonardo IDE 4.0 are available for download and are presented below.

Leonardo RE 4.0a: a multiplatform runtime engine. We are currently developing Leonardo IDE 4.0 in Leonardo IDE 3.4.1. An early prototype of the virtual execution environment of Leonardo IDE 4.0 (Leonardo RE 4.0a) is available for download below. The prototype features console-level interaction and, if executed in Leonardo IDE 3.4.1 (yes, a virtual CPU running on a virtual CPU), provides visualization of the process scheduling queue of the runtime engine. The package comes with some multi-platform pre-compiled examples such as the game of Checkers, and does not support reversible execution. Leonardo RE 4.0a is available for MacOS, Windows, and Leonardo IDE 3.4.1. The Readme file included in the package provides some additional information.

Download Leonardo RE 4.0a for Leonardo IDE 3.4.1 (sit.bin, 128 KB)

Download Leonardo RE 4.0a for MacOS (sit.bin, 135 KB) Download Leonardo RE 4.0a for Windows (zip, 88 KB)
Important notice: Leonardo RE 4.0a is a prototype distributed for demonstration purposes. It is a sample program for testing the runtime engine that will be part of Leonardo IDE 4.0. Leonardo RE 4.0a does NOT provide all the features of Leonardo IDE 3.4.1.

C Compiler RE 4.0a. A C compiler (C Compiler RE 4.0a) for generating multi-platform executable files for Leonardo RE 4.0a is available for download below. Currently, this C compiler is distributed only for MacOS. The Readme file included in the package provides some additional information.

Download C Compiler RE 4.0a for MacOS (sit.bin, 460 KB)

Graphic user interaction

In the currently distributed version of Leonardo, graphical objects in a visualization can be bound to variables in a program and the visualization is automatically updated as soon as variables are modified, but still no graphic user interaction with the program and with the visualization is possible. We have thus experimented with an enhanced version of Leonardo's visualization system that allows it to declare widgets (e.g., checkboxes, radio buttons, etc.) by means of new Alpha standard predicates. A checkbox, for instance, can be associated to an integer variable, and the system guarantees that the checkbox is selected if and only if the variable is non-zero. These new features will appear in Leonardo IDE 4.x.

Smooth animation

Supporting smooth image transitions is a valuable feature in software visualization systems, but it seems difficult to achieve in declarative frameworks, as they are basically data (and not event) driven. We are currently extending our framework in order to allow graphical objects to automatically get animated each time they change with no explicit action by the user, providing a powerful tool for creating smooth animation effects. We have designed suitable ALPHA predicates for providing graphical objects with animated behaviors, addressing both automation and customization possibilities. Extensions of the visualization system will be available in the next distributed version of Leonardo IDE 3.5. Three animations generated by Leonardo IDE 3.5 can be viewed by clicking the images above.