Jeliot Program Animation System
Version 3.6.1

Niko Myller, Andrés Moreno García, Moti Ben-Ari, Erkki Sutinen

1  Introduction

Jeliot is a program animation system intended for teaching introductory programming. Programs are animated automatically, requiring no modifications or annotations on the part of the instructor or student. Jeliot is written in Java for portability and animates programs that are written in Java.

2  Display

The screen is divided into a source frame on the left and a tabbed pane on the right. The default for the right pane is the animation frame called the Theater. Call Tree shows a tree of the current methods that have been called; it is useful for studying recursive programs. History enables display of the snapshots of the previous animation; use the arrow buttons and sliders to go backwards or forwards in the sequence of frames. Note that the generation of the history images takes some time and might slow down the visualization.

3  User interface

Commands may be issued from the menus or from two sets of buttons: one at the top of the screen for file and edit operations, and one at the bottom for animation control. All commands have mnemonics and shortcuts for quicker keyboard control. The following commands are standard in an graphical user interface:
File menu: New, Open, Save, Save As, Print, Exit.
Edit menu: Undo, Redo, Cut, Copy, Paste, Select All, Find, Replace.
Help menu: Help, About.

4  Editing and compiling

Jeliot can be in one of two modes: editing and animating. The Control menu (and the toolbar buttons at the bottom of the screen) change modes: In edit mode, Compile compiles the source file that has been opened and changes into animation mode. In animation mode, Edit returns to edit mode to enable modifying the source or opening a new source file.

5  Animation control

The animation is controlled by buttons at the bottom of the screen. Select Step for step-by-step animation. Select Play for continuous animation; you may stop it at any time by selecting Pause and resume the animation by selecting Play or Step again. Rewind restarts the animation from the beginning. The slider controls the speed of the animation.
The Animation menu includes selections: Run Until to interpret the program without animation until a line is reached, and Print current visualization to print a screen shot of the current display.

6  Options

Save Files In Unicode: If you experience problems with native characters either when saving and loading files or during visualization, set this option on.
Save On Compilation: Save the source file automatically before compilation.
Ask For Method: When the animation starts, you will be asked for a method name to call instead of the main method.
Ask For Command Line Parameters: When the animation starts, you will be asked for parameters for the method called.
Use Null Parameter To Call Main: If checked, the main method will be called with a null parameter; this avoids animating the creation of an empty array.
Ask Questions During Animation: Whenever an expression is to be evaluated, a popup window will ask for the result. However, currently questions are generated only for assignment statements.
Pause On Message: Automatically pauses the animation to display messages explaining its progress.
Show History View: Enables or disables the generation of the history view that shows snapshots of the previous animation in the theater. Note that the generation of the history images takes some time and might slow down the visualization. If the animation is too slow disable this option.
Select Font Of Code: Select the font for the code editor.

7  I/O

Jeliot supports System.out.print(ln). The package jeliot.io provides the methods void Output.println(), int Input.readInt(), double Input.readDouble(), char Input.readChar(), String Input.readString().

8  Limitations

All classes must be in a single source file.
Only static methods that do not return an object can be called from Java API.
Constructors cannot ask for users input.
Inner classes are not supported.
Because of the underlying interpreter no circular dependencies between classes can be resolved and thus they are not supported.

9  References

Mordechai Ben-Ari, Niko Myller, Erkki Sutinen, and Jorma Tarhio. Perspectives on program animation with Jeliot. In Software Visualization: International Seminar, Lecture Notes in Computer Science 2269, 31-45, Dagstuhl Castle, Germany, 2002.
Ronit Ben-Bassat Levy, Mordechai Ben-Ari, and Pekka A. Uronen. The Jeliot 2000 program animation system. Computers & Education, 40(1), 1-15, 2003.
Andrés Moreno, Niko Myller, Erkki Sutinen, and Moti Ben-Ari. Visualizing Programs with Jeliot 3. Proceedings of the International Working Conference on Advanced Visual Interfaces (AVI 2004), 373-376, Gallipoli, Lecce, Italy, 2004.



File translated from TEX by TTH, version 3.74.
On 24 Jul 2006, 13:27.