ganesh@sbcs.UUCP (Ganesh Gopalakrishnan) (11/12/83)
I wish to know more about the Programming language called "Mainsail" developed at Stanford University. Information on publications and availability are most welcome. I thank you in advance. Ganesh suny, stony brook
preece@uicsl.UUCP (11/16/83)
#R:sbcs:-52400:uicsl:6200001:000:2273 uicsl!preece Nov 15 09:33:00 1983 Mainsail is available from: Xidak, Inc. 530 Oak Grove Ave., Suite 101 Menlo Park, CA 94025 (415) 324-8745 It is derived from, but differs significantly from, the SAIL language from Stanford. It has lost the AI-oriented (LEAP) components of SAIL. Some other differences include: somewhat different data types and conversions; slightly stronger typing (bitwise logic, for instance, not applicable to integers); different syntax for FOR statement (no STEP or TO); explicit allocation of arrays; new syntax for records, but similar use; procedure name overloading is available for generic procedures; no nested procedures; change in way procedure parameters are specified as reference or value; neater MODULE capabilities; totally changed I/O statements, but similar capabilities (including break table input); very limited macro capabilities; support for partial compilation; the DEC-10 byte operators are gone. Mainsail is available on a fair variety of machines including the Vax (VMS or Unix), IBM VM/CMS systems, DEC-10 and 20, and some MC68000 systems. Educational licenses are available (not including source code, however). On Vax-Unix Mainsail provides a mechanism for reaching Unix system calls. The compiler, however, is interactive and can't conveniently be used with make. Xidak sells an editor of their own which allows easy back and forth between editing, compiling, and debugging -- using Mainsail with Emacs or Vi is much less convenient. Moving SAIL programs to Mainsail requires some effort, though less than moving them to C or Pascal. The transformation is not a simple, mechanical process. Most of the bugs we found in using it have supposedly been fixed in more recent releases, though the configurator was generating unassemblable code with the latest version we have. We generally liked the language and would have used it more if the package worked better with Unix (basically, a Unix compiler ought to be invoked in the same way as the C compiler and should produce the same kind of messages, otherwise it doesn't work with Unix development tools). Do be warned that the garbage collection process underlying their string capabilities can take substantial amounts of time at unpredictable intervals. scott preece ihnp4!uiucdcs!uicsl!preece