|
|
1.1 root 1:
2: anim -- Algorithm Animation
3:
4: Jon Bentley (research!jlb)
5: Brian Kernighan (research!bwk)
6:
7:
8: EXECUTIVE SUMMARY
9:
10: Create a description of an animation in the language
11: described in script.def, using whatever tools you like
12: (e.g., awk programs, C programs).
13: Show the movie on a 5620 or X11 system with movie.
14: (Suntools support has been withdrawn as of 12/87.)
15: (AT&T 630 terminal support added, somewhat incompletely, 5/88.)
16: Print selected frames through pic and troff with stills.
17:
18: LANGUAGE
19:
20: The language is defined but not explained much in script.def.
21: The awk program isort.gen can be run to give an example of
22: data in the script language, then processed subsequently
23: to make a movie or a set of stills. This uses a newish
24: (circa 1985) version of awk.
25:
26: DOCUMENTATION
27:
28: "A System for Algorithm Animation -- Tutorial and User Manual"
29: Computing Science Tech Report 132, January, 1987.
30:
31: PRIMARY PROGRAMS
32:
33: movie
34: shell script
35: "movie file.s" develops file.s if necessary to make file.i,
36: then displays it on the terminal (5620, 630 or X-windows only)
37: using anim.
38:
39: stills
40: shell script, invoking giant awk program stills.awk.
41: A troff preprocessor that creates pic pictures of
42: selected frames. Input language defined in stills.def
43:
44: develop
45: shell script, called by movie and stills.
46: Input language defined in script.def, output language
47: ("intermediate") defined in int.def.
48: Uses fdevelop (C program) to do the work; code in
49: fdevelop.h, fdevelop.c, fdsymbol.c, fdutil.c
50:
51: anim
52: Host program converts output of develop into format
53: suitable for 5620/blit, 630 or X window system.
54: On the 5620 or 630, downloads terminal process;
55: under X11, creates a new window for the movie.
56:
57: Try
58: isort.gen >dev.s (an example in this directory)
59: movie dev.s (equivalent to develop dev.s; anim dev.i)
60:
61: The files test.s and test.i can be used for experimenting
62: with the host and terminal programs before worrying about
63: develop.
64:
65: animterm
66: The terminal program, invoked only by anim.
67: Talks to the mouse after the data has been loaded.
68:
69:
70: SUPPORT PROGRAMS
71:
72: show.clicks make a new view to count clicks
73: view.clicks print summary of views and clicks
74: newer.c tests file ages; install if needed
75: (used in develop)
76:
77: INSTALLATION
78:
79: You will have to change some directory names and other parameters in
80: movie
81: stills
82: develop
83: makefile
84: x11.make or blit.make or 630.make
85:
86: BIN = directory where movie and stills are (e.g., /usr/bin)
87: LIB = directory where develop, fdevelop, stills.awk, anim, animterm
88: are (e.g., /usr/lib).
89: TERM = blit or 630 or x11 (yes, lower case)
90: DMDCC = dmdcc or 3cc or m32cc or ..., depending on the local name
91: for the compiler for the terminal
92: TERMLD = 32ld or dmdld or ..., depending on the program that
93: downloads 5620 or 630 terminals
94: V9 only if you are running the version 9 code (mux)
95: SYS_V if you are running SystemV layers code
96:
97: Then
98: make
99:
100: PROBLEMS
101:
102: The locations of compilers, downloaders, and similar things
103: vary wildly from system to system. Although we have tried
104: to parameterize these in the makefiles, you will almost certainly
105: have to fiddle with file names and perhaps defined constants
106: in the makefiles.
107:
108: The 630 implementation is not really solid. In particular,
109: term.c needs some work to deal better with the fact that int's
110: are only 16 bits. Memory allocation ought to be done better
111: (by calling lalloc instead of alloc) but that stumbles across
112: some bugs in the 630 compiler, so for the moment you are limited
113: to somewhat smaller pictures than might be possible.
114:
115: As a by-product, the default memory allocation is set
116: to 65000 bytes on the blit and 630. This can be set
117: higher by recompiling host.c on the blit, or by using the
118: -m option on anim.
119:
120:
121: APPLICATIONS, not provided here
122:
123: bp bin packing
124: grammar generate random sentences; rec desc parser for arithmetic
125: heaps heaps, heapsort, etc.
126: malloc profile malloc
127: misc miscellaneous -- hanoi, nls data
128: mst minimum spanning trees
129: sort sort algorithms
130: stars galaxy simulation
131: trees random binary search trees
132:
133:
134: ACKNOWLEDGEMENT
135:
136: The code for the animation system owes an enormous debt to
137: Howard Trickey, who first figured out how to deal with
138: the egregious Suntools window system, and then wrote the
139: X11 version included here.
140:
141: The Suntools code is still included, in sunterm.c, sunhost.c,
142: and sun.make, but is not maintained.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.