Personal tools
You are here: Home Projects LISP Utah REDUCE 2 and Standard LISP for Burroughs B6700 Installation document. Transcoded from EBCDIC to ASCII by Paul Kimpel. (Original RUNOFF version.)
Document Actions

Installation document. Transcoded from EBCDIC to ASCII by Paul Kimpel. (Original RUNOFF version.)

by Paul McJones last modified 2022-10-16 10:50

Installation document. Transcoded from EBCDIC to ASCII by Paul Kimpel. (Original RUNOFF version.)

Click here to get the file

Size 17.4 kB - File type text/plain

File contents

.INDENT 45
 August 1985
.SPACE 18;CENTER
LISP FOR A SERIES
.SPACE 2
REDUCE SYSTEM FOR A SERIES
.RESET;HEADER ,%,;TRAILER,,;BEGIN PAGE;PAGE 1;ON BLOCK;SPACE 2
The system provided has three REDUCE programs: LISP, REDUCE itself,
and INTEGRATOR which includes REDUCE as a subset.  It is assumed
that the reader has read:
.SPACE 1;INDENT 5
"REDUCE 2 USER'S MANUAL" (1) and
.INDENT 5
"STANDARD LISP REPORT" (2)
.SPACE 1
both of which are available from the Higher Education Software
Library (and also from the Computer Science department at the
University of Utah).
.SPACE 1
This document describes (sketchily) what must be done to compile
and run REDUCE.  It also describes how to make changes in the
REDUCE symbolic, recreate the necessary ALGOL files and
subsequently recompile REDUCE.
.SPACE 32
(1), (2) See the "References" section at the end of this document.
.OFF BLOCK;SPACE 2;ON BLOCK
1. SYSTEM ORGANIZATION OVERVIEW

.SPACE 1
The REDUCE system for the B7000/B6000 series consists of four parts:

The REDUCE algebraic processor itself, a LISP processor, a LISP

compiler which converts LISP programs to an intermediate language,

and an assembler which converts the intermediate language to

Burroughs ALGOL.  The INTEGRATOR has a fifth part which is the

integrator package.
.OFF BLOCK;SPACE 1;ON BLOCK
The algebraic processor, the compiler, the assembler and the



integrator package are written in RLISP, a sort of LISP with ALGOL-like

syntax.  The LISP processor is written partly in ALGOL and

partly in RLISP.  All these parts are combined into a single

large ALGOL program.  The parts written in RLISP must first be

translated to ALGOL.  The algebraic processor does this

translation.
.OFF BLOCK;ON BLOCK

   The algebraic processor was largely written by Anthony Hearn,

the compiler is the work of Anthony Hearn and Martin Griss, the
assembler was done by John Fitch, the part of the LISP processor
written in RLISP was done by John Fitch and Jed Marti.  The
integration package was developed at Cambridge by Arthur
Norman, John Fitch, and Maryann Moore.  The ALGOL portion of the
LISP processor, originally an SDL program for the B1700 that was
written by Fitch and Marti, was translated to ALGOL and
subsequently modified by Dave Dahm.



.OFF BLOCK;BEGIN PAGE;ON BLOCK;SPACE 2
2. COMPILING REDUCE
.SPACE 1
It is assumed that the ALGOL compiler was compiled with
"compile time facilities" included (dollar option CTPROC).  If
this is not so, DMALGOL can be used instead.
There is a file called REDUCE2LISP/MAIN/REDUCE which has
several ALGOL compile time options and several INCLUDE
statements.  Compiling this file will produce a REDUCE
system.  Similarly there is a file called INTEGRATOR.
Compiling this file will produce a REDUCE system


which can do symbolic integration.  Also there is a file




called LISP.  Compiling this file will produce a LISP system.

.OFF BLOCK;SPACE 1;ON BLOCK

There is a file called REDUCE2LISP/COMP/REDUCE

which will compile REDUCE with proper control

statements.  There are similar files for Lisp and Integrator.









.OFF BLOCK;SPACE 2;ON BLOCK
2.1 ALGOL COMPILE TIME OPTIONS
.SPACE 1
FASTLINK
.BREAK
If this option is set, REDUCE (LISP) procedures are tightly
bound at ALGOL compile time, and may not be redefined at run time.  If


the option is reset, REDUCE procedures are loosely bound and may


be redefined at any time.  REDUCE will be faster if this option is


set.


.OFF BLOCK;SPACE 1;ON BLOCK


SLOWSTACK
.BREAK
If this option is set, REDUCE (LISP) local variables will be

kept in an array.  If this option is reset, REDUCE local variables

will be kept in the machine stack.  REDUCE will be considerably

faster if this option is reset; however, use of this option requires

the use of the NEWP library.

.OFF BLOCK;SPACE 1;ON BLOCK
COUNT
.BREAK
If this option is set, REDUCE will gather statistics about the

internal functioning of the system.  Ordinarily this option will be

reset.

.OFF BLOCK;SPACE 2;ON BLOCK

2.2 RECOMMENDED OPTION SETTINGS

   If the usual mode of use is algebraic processing:

.INDENT 10

all options reset.

.SPACE 1

If speed is most important:

.INDENT 10
FASTLINK
.SPACE 2;OFF BLOCK;BEGIN PAGE;ON BLOCK
3. REBUILDING ALGOL FILES
   Occasionally it will be desirable to recreate the ALGOL files
which were produced by the RLISP compilation process.  This section
describes how this is done.  There is a file called "MAKER".  When
this file is loaded by REDUCE, the system will create two ALGOL
symbolic files and a linkage file.  These three files are called
N/ALGOL, N/FORWARDS, and N/SPACE.  For example after typing
.INDENT 10;SPACE 1
RUN REDUCE
.SPACE 1
one may type
.SPACE 1;INDENT 10
IN "REDUCE2LISP/TORECREATE/MAKER/REDUCE";
.OFF BLOCK;SPACE 1;ON BLOCK
This will cause REDUCE to read the file MAKER and create the N-files.
.OFF BLOCK;ON BLOCK;SPACE 1
The files (N/ALGOL and N/FORWARDS) are not complete.  For example
they don`t have sequence numbers, are not of type ALGOL, and
need to have some additional information appended.  Also a program
called LINKER needs to process N/QSPACE and create a special
initialization file.  This process is most conveniently done by
running a CANDE schedule file called REDUCE2LISP/DO/REDUCE.  Basically
it will take the N-files, and three files called TACKY, PROCS, and
UNKNOWNS and create new ALGOL files.  QSPACE file and INIT file.
It will also cause the compilation of the new version of REDUCE.
Running REDUCE2LISP/DO/REDUCE requires the presence of two ALGOL
programs: SEQUENCE and LINKER.
.OFF BLOCK;SPACE 1;ON BLOCK
After the successful running of this, the N-files may be
discarded.
.OFF BLOCK;ON BLOCK;SPACE 1
Similarly, new ALGOL files may be created for INTEGRATOR or LISP.
.OFF BLOCK;BEGIN PAGE;ON BLOCK;SPACE 2
4. THE LISP SYSTEM
   The version of LISP is "STANDARD" LISP as defined in (2).  Our
implementation has the following differences (this list is not
exhaustive).
.SPACE 1;ON SUBPARA 10;UNDENT 3
a) Floating point has not been implemented
.SPACE 1;UNDENT 3
b) Several LISP functions have been provided which are not
specified in (2).  Among these are:
.OFF SUBPARA;SPACE 1;ON SUBPARA 13;UNDENT 3
1) LENGTHC, the character length of an atom if printed by PRIN2.
.SPACE 1;UNDENT 3
2) REVERSIP, the reversal in place of its argument using RPLACD
.SPACE 1;UNDENT 3
3) LIST2, LIST3, LIST4, LIST5
.SPACE 1;UNDENT 3
4) NCONS and XCONS
.SPACE 1;UNDENT 3
5) FACTORIAL, the factorial of its argument
.SPACE 1;OFF SUBPARA;OFF BLOCK;ON BLOCK
To use REDUCE as a LISP processor, run REDUCE and then type
"END;".  This will cause LISP to be entered.  Typing "(BEGIN)"
will cause REDUCE to be reentered.
.OFF BLOCK;BEGIN PAGE;ON BLOCK;SPACE 2
5. MISCELLANEOUS OPERATIONAL CHARACTERISTICS
.SPACE 1
5.1 ?HI
.INDENT 5
Typing ?HI will elicit a response giving some information
about the present state of processing.  This should be expanded
in the future.
.OFF BLOCK;SPACE 1;ON BLOCK
5.2 ?HI 1
.INDENT 5
This will cause the present computation to abort and return
to REDUCE or LISP command level.
.OFF BLOCK;SPACE 1;ON BLOCK
5.3 ?END
.INDENT 5
Typing ?END will return you to the system in a controlled fashion
and give some information about what happened during the run.
.OFF BLOCK;SPACE 1;ON BLOCK
5.4 GCFLAG
.INDENT 5
Typing "ON GCFLAG" will cause garbage collection to print
statistics about garbage collection.  Typing "OFF GCFLAG" will
shut off these messages.
.OFF BLOCK;SPACE 1;ON BLOCK
5.5 SETTRACE
.INDENT 5
Typing "ON SETTRACE" will cause a trace of all interpreted SET
or SETQ function executions.  Typing "OFF SETTRACE" will turn
off this trace.
.OFF BLOCK;SPACE 1;ON BLOCK
5.6 PROGTRACE
.INDENT 5
Typing "ON PROGTRACE" will cause a trace of all interpreted
functions at the first level of PROG, PROGN, or COND.
.SPACE 2;OFF BLOCK;ON BLOCK
5.7 CONTROLLING STORAGE ALLOCATION
.SPACE 1
The free storage pool is divided into 2 arrays, one array for
CAR and one array for CDR.  Each of these arrays is divided into
256 word pages.  Therefore, a "page" of free space is 512 words -
256 words for CAR and 256 words for CDR.  The LISP processor uses
the CORE estimate to control the number of pages used.  This is set
to 150 000 words at compile time, but the user may change this at
run time.  The formula used is:
.SPACE 1;INDENT 5
PAGES =   (COREESTIMATE - 50000)/512
.OFF BLOCK;SPACE 1;ON BLOCK
For example:
.SPACE 1;INDENT 5
RUN REDUCE; CORE = 70000
.SPACE 1
will use 40 pages (each page being 512 words: 2 array rows of
256 words each).  The maximum number of pages allowed is 256.
This may be increased by changing the DEFINE for PPAGEMAX in
REDUCE2LISP/INCLUDE/ALGOL.
.SPACE 2;OFF BLOCK;ON BLOCK
5.8 INPUT/OUTPUT
.SPACE 1
The REDUCE IN statement may have as its parameter:
.SPACE 1;ON SUBPARA 10;UNDENT 3
1) an ID     e.g. `MYFILE
.SPACE 1;UNDENT 3
2) a STRING  e.g. "MYFILE" or "MY/FILE" or
.INDENT 15
"MY/FILE ON THEPACK"
.UNDENT 3
3) a list    e.g. `(MYFILE 100 900)
.SPACE 1;OFF SUBPARA;OFF BLOCK;ON BLOCK
The action of the first two options are obvious.  The third option
reads the records of the file MYFILE between sequence numbers
100 and 900 only.
.OFF BLOCK;SPACE 1;ON BLOCK
Similar options are available for the OPEN statement.
.OFF BLOCK;SPACE 1;ON BLOCK
If the name of the file is PRINTER, the output will be directed
to the line printer.
.OFF BLOCK;OFF HEADER;BEGIN PAGE;SPACE 2;CENTER
REFERENCES
.RESET;SPACE 2;ON SUBPARA 4;UNDENT 4;SCORE &
(1) A.C. Hearn &REDUCE 2 USER'S MANUAL&&, University of Utah, March 1973
On the Higher Education Software Library, this documentation is on the
file REDUCE2LISP/DOC/REDUCE.
.SPACE 1;UNDENT 4;SCORE &
(2) J.B. Marti, A.C. Hearn, M.L. Griss, C. Griss, &STANDARD LISP&&
.SCORE &
&REPORT, University of Utah, January 1978.
.BREAK
On the Higher Education Software Library, this document is on the
file REDUCE2LISP/DOC/LISP.
.OFF SUBPARA;SPACE 2;CENTER;ON HEADER;BEGIN PAGE;PAGE 1;HEADER ,A-%,
APPENDIX
.RESET;SPACE 2;ON SUBPARA 5;UNDENT 5;ON BLOCK
REDUCE2LISP/TORECREATE/ASSEMBLER (RLISP symbolic)
.BREAK
This code converts the intermediate language to ALGOL.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/B6700 (RLISP symbolic)
.BREAK
This code includes various machine specific changes to REDUCE.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/COMPILER (RLISP symbolic)
.BREAK
This code converts LISP to the intermediate form.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/MAIN/INTEGRATOR (ALGOL symbolic)
.BREAK
This file contains option setting and INCLUDE statements to paste
together the various ALGOL files.  Compiling this file produces
OBJECT/INTEGRATOR.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/DO/INTEGRATOR (CANDE schedule file)
.BREAK
This file converts N-files to sequenced ALGOL files, creates
an INIT file, and does the ALGOL compilation for INTEGRATOR.  This
is the final pass of rebuilding INTEGRATOR.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/INTEGRATOR/ALGOL (ALGOL symbolic)
.BREAK
This is the ALGOL translation of the integration package.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/INTEGRATOR/FORWARDS (ALGOL symbolic)
.BREAK
This file contains the FORWARD declarations for the procedures in
REDUCE2LISP/GENERATED/INTEGRATOR/ALGOL.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/INTEGRATOR/INIT (Binary file - internal LISP
representation.
.BREAK
Initialization file for INTEGRATOR.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/INTEGRATOR/PROCS (ALGOL symbolic)
.BREAK
This file contains copies of the procedure declarations in
INTEGRATOR.  It is used to produce TRACEBACK information.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/INTEGRATOR/QSPACE (Legible file)
.BREAK
Input to LINKER (creates INIT file)
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/MAKER/INTEGRATOR (RLISP symbolic)
.BREAK
This file, used as input to REDUCE, will rebuild the INTEGRATOR
N-files.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/INCLUDE/RLISP/INTEGRATOR (RLISP symbolic)
.BREAK
This code is the integration package.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/MAIN/LINKER (ALGOL symbolic)
.BREAK
This is the symbolic for the LINKER program.  This program reads
QSPACE file ( a legible file) and creates the INIT file (a binary
file).
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/MAIN/LISP (ALGOL symbolic)
.BREAK
This file contains option settings and INCLUDE statements to
paste together the various ALGOL files.  Compiling this
procedure produces OBJECT/LISP.
.UNDENT 5;OFF BLOCK;SPACE 1;ON BLOCK
REDUCE2LISP/INCLUDE/ALGOL (ALGOL symbolic)
.BREAK
This is the symbolic for the ALGOL portion of the LISP processor.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/DO/LISP (CANDE schedule file)
.BREAK
This file converts N-files to sequenced ALGOL files, creates
an INIT file, and does the ALGOL compilation for LISP.  This is the
final pass of rebuilding LISP.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/LISP/ALGOL (ALGOL symbolic)
.BREAK
This is the ALGOL translation of RDUCE2LISP/MAIN/RLISP/LISP
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/LISP/FORWARDS (ALGOL symbolic)
.BREAK
This file contains the FORWARD declarations for the procedure
in REDUCE2LISP/GENERATED/LISP/ALGOL.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/LISP/INIT (Binary file - internal LISP
representation/initialization file for LISP.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/LISP/PROCS (ALGOL symbolic)
.BREAK
This file contains copies of the procedure declarations in LISP.
It is used to produce TRACEBACK information.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/LISP/QSPACE (legible file)
.BREAK
Input to LINKER (creates INIT file)
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/MAKER/LISP
.BREAK
This file, used as input to REDUCE, will rebuild the LISP N-files.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/INCLUDE/RLISP/LISP (RLISP symbolic)
.BREAK
This is the symbolic for the RLISP portion of the LISP processor.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/MACROS (RLISP symbolic)
.BREAK
The file is used by the LISP compiler during a rebuild.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/PROCS (ALGOL symbolic)
.BREAK
This file contains copies of the procedure declarations in LISP/ALGOL.
It is used by the schedule files to produce the PROCS files.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/MAIN/REDUCE (ALGOL symbolic)
.BREAK
this file contains option settings and INCLUDE statements to paste
together the various ALGOL files.  Compiling this file produces
OBJECT/REDUCE.
.UNDENT 5;SPACE 1;OFF BLOCK;ON BLOCK
REDUCE2LISP/DO/REDUCE (CANDE schedule file)
.BREAK
This file converts N-files to sequenced ALGOL files, creates an
INIT file, and does the ALGOL compilation for REDUCE.  This is the
final pass of rebuilding REDUCE.
.UNDENT 5;OFF BLOCK;ON BLOCK;SPACE 1
REDUCE2LISP/GENERATED/REDUCE/ALGOL (ALGOL symbolic)
.BREAK
This is the ALGOL translation of REDUCE.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/REDUCE/FORWARDS (ALGOL symbolic)
.BREAK
This file contains the FORWARD declarations for the procedures
in REDUCE2LISP/GENERATED/REDUCE/ALGOL.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/REDUCE/INIT (Binary file -

internal LISP representation)
.BREAK
Initialization file for REDUCE.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/REDUCE/PROCS (ALGOL symbolic)
.BREAK
This file contains copies of the procedure declarations in REDUCE.
It is used to produce TRACEBACK information.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/GENERATED/REDUCE/QSPACE (Legible file)
.BREAK
Input to LINKER (creates INIT file).
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/MAKER/REDUCE (RLISP symbolic)
.BREAK
This file, used as input to REDUCE, will rebuild the REDUCE
N-files.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/INCLUDE/RLISP/REDUCE (RLISP symbolic)
.BREAK
This code is the algebraic processor.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TEST/REDUCE (REDUCE symbolic)
.BREAK
This is a test file.  If REDUCE correctly processes this file, things
are in pretty good shape.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/MAIN/SEQUENCE (ALGOL symbolic)
.BREAK
This is the symbolic for the SEQUENCE program which sequences
the N-files.  It is used while running a schedule file.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/STARTLISP (RLISP symbolic)
.BREAK
This file is used to REDUCE when doing an RLISP compilation.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/TACKY
.BREAK
This file is used by the schedule files to produce QSPACE files.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TEST/LISP (LISP symbolic)
.BREAK
This is a test file.  When using REDUCE as a LISP processor, this file
will test many LISP primitives.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/TRACE (RLISP symbolic)
.BREAK
This file contains RLISP procedures which will allow selective tracing
of interpreted routines.
.SPACE 1;UNDENT 5;OFF BLOCK;ON BLOCK
REDUCE2LISP/TORECREATE/UNKNOWNS (ALGOL symbolic)
.BREAK
This file contains empty definitions of procedures which have not been
implemented.
« April 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: