[comp.sys.ibm.pc.misc] SmallAda available free!

mfeldman@seas.gwu.edu (Michael Feldman) (10/01/90)

F R E E  S O F T W A R E  A N N O U N C E M E N T
SmallAda 1990 for Apple Macintosh and IBM-PC family computers
=============================================================
copyright 1990, The George Washington University

project supervised by
Prof. Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052 USA                                     
202-994-5253
mfeldman@seas.gwu.edu

SmallAda is a compiler/interpreter for a part of the Ada language, namely
the "Pascal subset" plus the Ada tasking support. It is not intended
ever to be a full Ada compiler, rather a vehicle for teaching, learning,
and experimenting with concurrent programming. The compiler is quite
fast, producing P-code which is then interpreted by the interpreter.

Both the Mac and DOS versions are integrated systems, complete with editor
and window-oriented runtime monitor. The Mac editor is like any Mac ASCII
editor, supporting cut/copy/paste and the like. The Mac version is Mac-like.

The DOS version editor is Turbo-Pascal or WordStar-like, including pull-
down menus for editor and compiler commands. No mouse support is provided
at this time.

We are handling these systems as "freeware," meaning that we distribute them
without charge and without obligation, but we retain the copyright and wish
to keep the distribution and our mailing list under reasonable control.

Executables may be obtained by sending e-mail to mfeldman@seas.gwu.edu.
By return e-mail I will send you a simple license form which you can mail
back to me with formatted disks.

THE TASKING MODEL
We have tried to be reasonably faithful to Ada tasking. The scheduler is
designed to show some of the important issues of concurrent programming,
therefore time-slicing is implemented, and the length of the slice is
randomly determined. Also, at each rescheduling point the next task to
be scheduled is selected randomly. This is to give a reasonable model of
nondeterministic (unpredictable) behavior. 

The Macintosh environment provides a number of capabilities for runtime
monitoring of a SmallAda program. You can open a window for MAIN and
for each task in your program, and watch the source code scroll through
the window as the program runs. There is also a control window that gives
lots of information on task states, etc., and a P-code window that scrolls
the P-code as it is executed by the interpreter. Run in slow-motion mode,
this provides lots of insight into the workings of an interpreter and
the source-code scrolling can also be used just to show beginning students
how the logic of a program is executed. 

The Mac windows are entirely under the user's control, that is they can
be opened, closed, moved, or re-sized at will, just like any Mac windows.

PC window management is in general not as easy as it is in the Macintosh,
so the windowing system here is not quite as sophisticated. We do support
the source-code windows for all tasks; they can be opened or closed
individually but their size is "hard-wired" and they cannot be moved.
Speed control is supported, which allows the user to speed up or slow
down the execution of the interpreter. All this is done with the usual
PC-oriented function key commands.