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.