Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site reed.UUCP Path: utzoo!watmath!clyde!burl!ulysses!bellcore!decvax!decwrl!pyramid!hplabs!tektronix!reed!maclab From: maclab@reed.UUCP (Mac DLab) Newsgroups: net.micro.mac Subject: Rascal Summary Message-ID: <2476@reed.UUCP> Date: Sun, 9-Feb-86 17:26:31 EST Article-I.D.: reed.2476 Posted: Sun Feb 9 17:26:31 1986 Date-Received: Wed, 12-Feb-86 06:12:03 EST Organization: Reed College, Portland, Oregon Lines: 251 I posted an article several days ago offering to send information about the latest Rascal release to interested parties -- I'm afraid I can't keep up with all of the mail I have been getting, so I have decided to post a summary of Rascal Version 1 (below). Please note that this is *not* a review -- I am involved in the development of Rascal, and am therefore hopelessly biased. As I mentioned in my last article, I trust that some un-biased party will eventually post a review to the net. Scott Gillespie (Usenet address listed at end of message).. ------------------------------------------------------------------- What is Rascal? --------------- Rascal is a complete development system for the Macintosh (and, of course, the Macintosh Plus). Rascal is also a new language, designed specifically for Macintosh operating systems. It is similar to Pascal, with many elements of C added in. Editor, Native Code Compiler, Linker and Execution environment are included in a single application -- Rascal programs may be executed within the development environment, and/or turned into stand-alone applications or desk accessories. Rascal's program structure, and its run-time environment, take the burden of standard Macintosh housekeeping off of the programmer. You don't have to worry about trivialities such as pulling menus down, resizing window, opening and handling desk accessories, etc -- that is done for you (or, you can bypass the 'Supervisor' and handle anything you want without the Supervisor's interference). So, for instance, you can write a simple terminal emulator with about 20 lines of code: program Miniterm; Uses (*$U+*) uRas ; Link __IO.ras :; procedure _INIT(); (* This procedure isn't even needed if you want 1200 baud *) begin setconfig(Stop20 + Data8 + Baud9600 + NoParity); end; procedure _Key(c, mods : Integer); { keyconv(@c,@mods); putchar(c); }; procedure _MAIN(); var c : Integer; begin nodwellchar(@c); if (c <> -1) then writechar(x mod 128); end; Here are the contents of the Rascal Version 1 (Feb 3 1986) release: Rascal Version 1 ---------------- 4 Disks: 1) System Disk, with Rascal itself, and some demos, and the standard Rascal libraries. About 50K is left free so that moderate sized programs can be compiled, linked, etc. 2) Library/Utility disk, contains all the rest of the libraries plus utilities like terminal emulator, delete file program, application maker, icon maker , etc. 3) Example disk, completely full of example program sources, as well as sources for the utilities. There is a wide variety of source here: graphics, desk accessories, floating point examples, games, sound programs, etc., ranging from very simple to fairly sophisticated. 4) Library source disk, contains source files for every library. Documentation: -- Primer. 60 pages of step-by-step introduction to Rascal. -- User Manual. Complete overview of the development system, and the process of making applications. Chapters on Rascal Menus, the Editor, the Compiler, Linker and Execution environment. Also a chapter on job and batch programming (Rascal's answer to exec files), and documentation for all of the Rascal utilities. Appendices on using Rascal with the Hierarchical file system, and disk configuration strategies. -- Language Manual. Complete description of the Rascal language. In the style of traditional Pascal documentation, beginning with the most basic things (such as identifiers and constants), and working up to programs and I/O. Lots of 'railroad-track' syntax diagrams, and some BNF for good measure. Also, 9 appendixes on a variety of topics: disk io, serial io, screen/keyboard io, language oddities, floating point, etc. The above three manuals each have their own index, plus there is a complete index for the three. These are contained in a single binder (flashy 'Rascal' binders will not ship until the end of February, but for those in a hurry, the distributor will ship in plain binders). Altogether, about 300 pages. As a separately bound tome, you get: -- Library Manual. Descriptions of the Rascal libraries and their routines. (there are many of them in addition to the standard tooltraps, ostraps, etc.), plus source listings for all libraries. Also included is an index of routines by library, and a complete index (i.e. given the name of a routine, you can find out what library it is in). Misc. Features: Hierarchical File System Support -------------------------------- The development system understands HFS now, so libraries and utilities can be placed in default search folders (any number of search folders can be specified by the user). The new HFS and ROM calls have *not* been implemented yet in a Rascal library, but we'll get to it soon. In the meantime, given the new HFS documentation, any Rascal programmer could create such a library without much effort. Inside Macintosh Support --------------------------------- All routines, types and contants described in Inside Macintosh are available in the Rascal libraries. AppleTalk calls are supported, but the AppleTalk drivers are not included. Macintalk (the speech synthesizer) is also supported via libraries, but again, the driver is not included. Exec Capability --------------- A new feature of Rascal allows you to write exec files (for multiple compilations, linking, executing, etc.). These execs are actually written *in Rascal* and are interfaced to the development system via a modified execution environment. Complete Library Support ----------------------- Older versions of Rascal did not support 'Uses' Libraries (which contain type and constant definitions) -- full support in this is now provided, as are all of the necessary Inside Macintosh definitions. Smart Linking ------------- The Linker is now smart -- only necessary library routines will be added to your code at link time. Rascal Libraries ---------------------- In addition to the standard Inside-Mac-style libraries, many specially written Rascal libraries are included with the release. They are too numerous to describe. The titles of all of the libraries are listed below -- you can intuit the purpose of most of them from their titles. Rascal Libraries: __Job.src __ToolBox.src __LPR.src __ToolLink.src __3Dsane.src __Memory.src __ToolTraps.src __ABRasCalls.src __Menus.src __ToolUtil.src __ComplexLib.src __NoSysCall.src __Uniform.src __Controls.src __OSTraps.src __Windows.src __DeskLib.src __PackTraps.src __Dialog.src __Params.src uJob.src __EasyEd.src __QuickDraw.src uMacPrint.src __EasyMenus.src __Resource.src uMemtypes.src __EasyPrint.src __SANE.src uOSIntf.src __Easywind.src __SANEPrint.src uPackIntf.src __ExtendIO.src __SFnames.src uQuickDraw.src __Extras.src __SaneIO.src uRas.src __FixedLib.src __Sound.src uSpeech.src __GraphUtils.src __Speech.src uToolIntf.src __Help.src __StringLib.src __IO.src __Text.src There have been numerous other changes to Rascal and its utilities. I will be glad to answer any specific questions about changes, features, etc. Rascal is owned by (and was developed at) Reed College. Our distributor (they will send data sheets, on request): Metaresearch, Inc. 1100 SE Woodward Portland, OR 97202 (503) 232-1712 Price: $129.00 (educational discounts available) Update Price: $25.00 (includes the four disks plus a new manual: for owners of the previous Rascal version) Site License: Reed has been known to negotiate very reasonable site licenses for User groups and institutions -- contact the distributor for information. Note to Net Alpha Testers -- I am working on getting a final release to you. Please be patient... Thanks. -------------------------------------------- Scott Gillespie Software Development Laboratory Reed College Portland, OR 97202 Claimer: I am involved in the Rascal project and therefore anything said in this article should be taken with a grain of salt. {decvax, ucbvax, pur-ee, uw-beaver, masscomp, cbosg, aat, mit-ems, psu-cs, uoregon, orstcs, ihnp4, uf-cgrl, ssc-vax}!tektronix \ +--!reed!maclab {teneron, ogcvax, cadic, oresoft, grpwre, / harvard, psu-cs, omen, isonvax, nsc-pdc}-------------+