home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
ada
/
setl2
/
doc
/
setl2doc.txt
< prev
next >
Wrap
Text File
|
1992-06-24
|
12KB
|
261 lines
From cs.nyu.edu via anonymous ftp, directory /pub/setl2.
SETL2
=====
This directory contains all the distribution files for the SETL2
programming system. It's implemented on a number of machines and all of
the binaries can be found in the various files here. As usual, this
entire system is provided free of charge, but WITHOUT ANY WARRANTY. Use it
at your own risk.
There are separate distribution files for each supported system, but this
README file covers all of them. Look through what follows for the system
in which you are interested, and ignore the rest. You should find the
following systems supported:
MS-DOS (versions 3.1 and higher)
Extended MS-DOS (80286 and higher processors with extended memory)
Apple Macintosh (with the MPW environment)
Sun 3 (SunOS 4)
Sun 4 (SunOS 4)
IBM RS/6000 (AIX 3.1)
DEC RISC product line (Ultrix 4.0)
DEC Vaxen (Mt. Xinu Unix)
DEC Vaxen (VMS)
[and OS/2.]
Please report any bugs or problems to:
Kirk Snyder
Courant Institute of Mathematical Sciences
New York University
251 Mercer Street
New York, NY 10012
e-mail: snyder@cs.nyu.edu
PLEASE SEND ME AN EMAIL MESSAGE IF YOU FTP THE SETL2 SYSTEM. This is not
intended to restrict access in any way, just to let me know who is using
it. I keep a mailing list of users to send out occasional notices, and
if you don't let me know you're using SETL2 then I can't put you on the
list.
I expect this archive to move around Aug-Sept, 1992. I will send out
a notice to anyone who sends me email. I will finish my Ph.D. this year
and get a job elsewhere. The SETL2 system will move with me. If
anyone hears of an academic job available for someone interested in
programming language design and implementation I'd appreciate it if you'd
let me know.
Thanks
-- Kirk
MS-DOS
======
MS-DOS is a somewhat uncomfortable environment for SETL2, due to the
severe memory limitation. You will find two distinct sets of distribution
files here. One for systems with 8086 processors or no more than 640K of
memory, the other for systems with an 80286 or higher model processor and
some EXTENDED (not expanded) memory.
If your computer has an 8086 (or 8088) processor, then you should get the
files dos-1.zoo, dos-2.zoo, dos-3.zoo, and dos-4.zoo, along with zoo.exe
and zoo.doc, if you don't already have them. Install all of these files
on your disk, then execute
zoo x// dos-1
zoo x// dos-2
zoo x// dos-3
zoo x// dos-4
This will create a setl2 directory with several subdirectories. The first
thing you'll want to do is print the documentation (it's distributed in
Postscript form), then follow the installation instructions.
The big weakness of the DOS implementation is the 640K barrier. SETL2
programs can easily consume much more memory than that. There is another
set of files called dos286-1.zoo, dos286-2.zoo, dos286-3.zoo, and
dos286-4.zoo which may or may not help. This implementation uses a piece
of software called a DOS extender to run programs in 286 protected mode,
which allows access to as much as 16M of extended memory. DOS extenders
don't really fit comfortably in DOS, perhaps in part because IBM and
Microsoft would much rather you buy OS/2. But in the cases in which they
do work they are fairly nice.
The version supplied here is written by Lattice and distributed with their
80286 development system. There are competing products, but the wonderful
thing about Lattice's is that I can distribute it with SETL2 without
paying Lattice a royalty. To my knowledge this is the only DOS extender
which is royalty-free. Anyway, here's how you install it.
Under the bin directory, you should find the programs "tune.exe" and
"ex286.exe". Tune will examine your system and customize the ex286
program for your system. Make the bin directory current and execute
tune. Tune will ask you to press some keys, AND MAY HANG YOUR SYSTEM.
This hanging is normal. Just reboot and try again. Tune keeps track
of what it was doing in files, so will continue from where it left off.
After you do all this, move all the files in the bin directory to some
directory in your path. Before using SETL2 execute ex286 to install the
DOS extender. When you're finished execute "ex286 rem" to remove it. You
may want to create batch files which do this for you. Other than this
complication the instructions in the documentation should work as usual.
If you'd like to find out if all this is working, try the test286 program
included on the bin directory. Basically, it keeps consuming memory until
an abort. If it aborts at the same place with and without the extender
installed, then something didn't work.
A caveat: DOS extenders are somewhat risky and fragile things. If your
system is unusual it might not work, due to conflicts with TSR's, device
drivers, etc. DON'T BOTHER ME WITH REPORTS ABOUT THIS. It seems to me
that Lattice has done a great job on the DOS extender, but I'm not about
to support it for them, particularly since I don't charge for this. If
you desperately need the DOS extender to work and are having severe
trouble, then buy the Lattice C 286 Development System, and complain
directly to Lattice. They have top notch support, and the system is very
nice, so you probably won't be wasting your money. If you work for a
school then call them and ask about their educational discounts before
calling the mail order companies. They really are nice people to deal
with, in spite of the flames they've been getting on the net about their
dongle.
Macintosh
=========
The Macintosh implementation is distributed as a `binhex'ed stuffit
archive. To decompress you'll need stuffit, which is available on many
archives.
The Macintosh implementation requires the Macintosh Programmer's
Workbench, which you will have to get from the Apple Program Developers
Association, which is owned by Apple. Unfortunately, you'll have to join
APDA first. I'm sorry about this, but I'm unwilling to abandon the
command line, and Apple doesn't provide one without buying MPW.
In the stuffit file you'll find MPW tool versions of the compiler and
interpreter, and a number of scripts which make MPW a fairly comfortable
environment for SETL2. We are currently working on extensions to allow
access to the Mac Toolbox (still in MPW, though). If you'd like to be
informed when that is available, send me email.
Unix
====
Unix is clearly the most comfortable environment for SETL2. We get a
command line and all the memory we can afford, without standing on our
head. The system is distributed as a compressed tar file, and I think it
should be obvious from the names on the archive which you should get.
One hopefully nice addition in the Unix environment is a SETL2 mode for
Gnu Emacs, which is included in each file. I'm still working on this,
but I think what I've got so far will be useful so I'm including it now.
It assumes that you are familiar enough with Emacs LISP to change
keyboard maps. I'm not about to try to come up with an assignment of
keystrokes which won't conflict with other packages and will be available
on all systems. The keymap provided is the one I use, but that's certain
to be terrible for anyone else (I don't hesitate to change standard
keymaps, so the keystrokes I use in the SETL2 mode conflict spectacularly
with standard keymaps). Anyway, here are the functions available. All
you have to do is bind them to keystrokes you like.
setl2::compile-buffer => Compile the current buffer, saving
first if necessary. The cursor will
be placed at the first error if there
is one.
setl2::next-error => Move the cursor to the next error,
displaying the message in the
minibuffer.
setl2::previous-error => Move the cursor to the previous
error, displaying the message in the
minibuffer.
setl2::install-template => Begin entering one of the following
structures:
program
package
class
procedure
lambda
for
while
until
loop
if
case
After you initiate this, start typing
the structure you want. The macro will
try to complete the keyword as far as
it can. When it has a complete keyword
it will enter the structure. For
example, to enter "program" you would
actually type "prg".
setl2::next-component => The structures above all have some
variable stuff. The previous function
writes the skeleton, this one jumps
to places where you need to fill in
things.
setl2::pull-comment => Find the next comment, then look for
all successive lines with comments
in the same column, like this:
-- this is a two
-- line comment.
Yank out the text of the comment, and
install it in a scratch buffer, in
word processing mode. The width of
the buffer depends on the column in
which the comment was found.
setl2::replace-comment => Only works in a comment buffer
described in the previous function.
removes some extra blanks around the
comment and replaces the orginal.
setl2::new-comment => Enter a -- at the cursor postion,
back up and call pull-comment.
setl2::wrap-in-comment => Prefix all lines between point and
mark with --.
setl2::expose-comment => On all lines between point and mark
beginning with --, remove the --.
setl2::inline-comment => Jump to column 40 on the current line,
and enter "-- ". I use this for
describing variables in a var.
VMS
===
The VMS implementation is about the same as Unix, and also includes the
SETL2 mode for Emacs. The only complication here is in the distribution
format. I'm not really a VMS expert, but I talked to one and was told
that there isn't really a standard format for distributing VMS files. I
used zoo, since that's my favorite. You can get it on many archives, but
not this one.
You'll have to use defines to allow this to be called normally. Something
like this:
stll :== $ disk$cs:[?????]stll.exe
stlc :== $ disk$cs:[?????]stlc.exe
stlx :== $ disk$cs:[?????]stlx.exe
You'll have to change the file names to whatever you normally use, of
course.