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 (if the line is never reached the
visualization will stop in the end of program), 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.
Show Strings as Objects: Changes the visualization of a String value to be an object.
Do Garbage Collection: Enables garbage collection during the program visualization.
This is very useful when Strings are showns as objects because otherwise screen can be cluttered.
Ask For Command Line Parameters: When the animation starts, you will be asked
for parameters for the method called.
Ask For Method: When the animation starts, you will be asked for a method name
to call instead of the main method.
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) and basic functionality of Scanner class, namely methods next(), nextInt(), nextDouble().
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 user 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.
The run until -feature cannot be set on lines with this- or super-method calls.
In some (hopefully, very few) occasions, a reference/value is shown in a expression evaluation area longer than it should be due to the design of Jeliot and DynamicJava because we cannot make sure if those references/values are still needed.
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.