GitHub - softwarepreservationgroup/setls: SETL-S by Nigel P. Chapman, with contributions by Julius J. VandeKopple (original) (raw)

setls

SETL-S by Nigel P. Chapman, with contributions by Julius J. VandeKopple.

Nigel P. Chapman created SETL-S at the University of Leeds, completing version 1.9 in 1980. Later, Julius J. "Jay" VandeKopple, working at New York University, adapted it for MS-DOS, and distributed versions through 2.2 in 1991. Chapman's Ph.D. thesis uses SETL-S as an example of the techniques it describes:

This project includes the main source file for SETL-S, which is written in MINIMAL, and also includes the files distributed for version 2.2 on October 6, 1991.

The source code is distributed under the GNU Public License Version 3.0 -- see the file LICENSE.

Documents

Source

SETLS Example Programs

There is also a copy of DVED, the Dewar Visual Editor, by Robert B. K. Dewar with these files: DVED.COM, DVED.DOC, and DVEDUSR.DOC.

Running SETLS

The files in DISTR will run on a real or emulated PC-compatible running MS-DOS. Alternatively, it can be run in a browser. Visit https://virtualconsoles.com/online-emulators/dos/ and drag DISTR-ZIP.zip to the blue area on the web page, then press the blue Start button at the bottom. You’ll soon have a C:> prompt; type “cd distr” to enter the directory, then type “setls fact” to run the factorial example, followed by two carriage returns to accept the default filenames for listing and executable. DVED is available in this same directory if you want to write a new program.

Implementation

The MINIMAL language was originally designed to implement Macro Spitbol. MINIMAL in turn is implemented by a Spitbol program that translates MINIMAL to the assembly language of the target machine; then an assembler such as NASM is used to assemble the generated code, after which it is linked with an operating system interface library. To bootstrap Macro Spitbol, an existing Spitbol executable is required.

SETLS combines a translator and an interpreter in a single executable, so it bypasses the assembly step used by Macro Spitbol. See the comments in the source code for details.

See https://github.com/spitbol for historical and modern versions of Macro Spitbol.