V10/cmd/movie/LONG_DESC


                anim -- Algorithm Animation

                Jon Bentley (research!jlb)
                Brian Kernighan (research!bwk)


A program or an algorithm can be animated by a movie that
graphically represents its dynamic execution.  For instance,
a memory allocator might be animated by lines that appear
when memory is allocated and disappear when it is freed; a
sort might be animated by a randomly scrambled sequence of
lines being permuted into order.  Such animations are useful
for debugging programs, for developing new programs, and for
communicating information about how programs work.

The anim program provides a basic system for algorithm
animation:  the output is crude, but the system is easy to
use; novice users can animate a program in a couple of
hours.  The system currently produces movies on Teletype 5620
and 630 terminals and workstations running X11, and also
renders movies into ``stills'' that can be included in troff
documents.

An animation is normally produced by adding print statements
to a program.  Each statement requests the drawing or erasing
of some piece of the animation.  Objects may be lines, boxes,
circles, or text, positioned arbitrarily.  Anim scales
coordinates so that the disaply always fits the screen.  The
display may contain multiple independent views that depict
different aspects of interest; these views are completely
independent of each other and are scaled separately.

When anim is used interactively, the viewer can control the
speed of display, proceed forward or backward through time,
and change the screen layout to emphasize certain views.  It
is also possible to mark interesting points in time and step
from event to event interactively.

When anim is used to produce stills, a simple language
permits the selection and positioning of arbitrary
collections of interesting frames and views.

The system is described in detail in "A System for Algorithm
Animation -- Tutorial and User Manual," Bell Labs Computing
Science Tech Report #132, January, 1987.