File r30/tops20.doc artifact 001073fe56 part of check-in 5f584e9b52



















               RUNNING REDUCE ON A DECSYSTEM 20 SERIES COMPUTER

                                 Version 3.0

                                      by

                               Anthony C. Hearn

                             The Rand Corporation
                          Santa Monica, CA 90406 USA

                                  April 1983












                                   ABSTRACT


This  document describes operating procedures specific to running REDUCE under
TOPS-20 on a DECSYSTEM 20 series computer.









                         Rand Publication CP81(4/83)

                   Copyright (c) 1983 The Rand Corporation




                              _T_A_B_L_E__O_F__C_O_N_T_E_N_T_S







1.  PRELIMINARY .........................................................    1

2.  FILE HANDLING .......................................................    1

3.  AN INTRODUCTION TO REDUCE ...........................................    2

4.  REDUCE DOCUMENTATION ................................................    2

5.  FILE EDITING CAPABILITIES ...........................................    2

6.  IMPLEMENTATION DEPENDENT PARAMETERS .................................    3
         6.1  Object sizes ..............................................    3
         6.2  Special characters and interrupts .........................    3
         6.3  Memory Requirements .......................................    4
         6.4  Miscellaneous .............................................    4

7.  IMPLEMENTATION DEPENDENT ERROR MESSAGES .............................    4

8.  FURTHER HELP ........................................................    4

Running REDUCE under TOPS-20                                            Page 1


1.  _P_R_E_L_I_M_I_N_A_R_Y

This document describes operating procedures for running  REDUCE  specific  to
the  DECSYSTEM  20  series  of  computers.   It  supplements the REDUCE User's
Manual, describing features, extension and limitations specific to this imple-
mentation of REDUCE.

REDUCE under TOPS-20 for a DECSYSTEM 20 series computer is stored as  an  exe-
cutable  binary  disk file.  The name of the directory that contains this file
is identified in this document as "<reduce>" .  Other REDUCE related files are
also stored in this directory.

Unless <reduce> is equivalent to sys: at your site, your command files  should
be  modified  to  include  <reduce> in your sys: search path.  An entry of the
form:

    def sys: <reduce>,sys:

is sufficient.

To run REDUCE, you then type (in upper or lower case)

    reduce

REDUCE will respond with a banner line and then prompt for the first  line  of
input:

     reduce 3.0, 15-Apr-83 ...

     1:

You can now begin entering commands.


2.  _F_I_L_E__H_A_N_D_L_I_N_G

The LISP interpreter currently in use with this version of REDUCE  was  origi-
nally written for a TOPS-10 system. As a result, its file names follow TOPS-10
conventions. In particular, the name and extension fields can be a maximum  of
six  and  three  characters long respectively. As a result, the filenames that
appear in IN, OUT and SHUT statements must follow this  convention.  Directory
names can be of three forms:

   An identifier followed by a colon, e.g., reduce:.

   An identifier enclosed in angle brackets, e.g., <reduce>. (Normally only
      used with TOPS-20.)

   A project, programmer pair, enclosed in square brackets, e.g., [22,304].
      (Normally only used with TOPS-10.)

The first two styles of directory name must precede the  file  name,  and  the
third follow it, as in

     "reduce:reduce.tst"

Running REDUCE under TOPS-20                                            Page 2


     "<reduce>reduce.tst"
or
     "reduce.tst[22,304]".

As a test of the system, you should try

     in "<reduce>reduce.tst";

which will load the standard REDUCE test file.


3.  _A_N__I_N_T_R_O_D_U_C_T_I_O_N__T_O__R_E_D_U_C_E

New users of REDUCE are advised to process the seven REDUCE Lessons  that  are
available as <reduce>lessi.  For example, to run Lesson 1, you would say:

     in "<reduce>less1";


4.  _R_E_D_U_C_E__D_O_C_U_M_E_N_T_A_T_I_O_N

REDUCE documents are also kept in the <reduce> directory, with  the  extension
doc. These include:

     instal.doc      Installation instructions

     reduce.doc      REDUCE User's Manual

     tops20.doc      TOPS-20 specific operation notes (i.e., this document).


5.  _F_I_L_E__E_D_I_T_I_N_G__C_A_P_A_B_I_L_I_T_I_E_S

The TOPS-20 version of REDUCE provides a link to the line-oriented system edi-
tor "EDIT".  There are two commands provided in this regard.

     EDIT <id>[,<integer>[,<integer>]]

If <id> is a valid file name, then this command will invoke the editor on this
file.   If  the optional integer arguments are omitted, then you will be posi-
tioned at the first line in the file.  On exiting from the editor, you will be
returned to REDUCE.  If the second argument is used, you will be positioned at
that line in the file.  If the third argument  is  used,  that  page  will  be
referenced rather than the default page 1.  For example,

     EDIT "foo.bah",100;

will position the editor at line 100 on page 1 of the file "foo.bah".

If the second or optional third arguments are specified, on exiting  from  the
editor REDUCE will first load the command that starts at the line specified in
the EDIT command before returning control to the user.

If <id> is not a file name, but is the name of a function that has been loaded
by  the user from a file, then the editor will be positioned at the first line

Running REDUCE under TOPS-20                                            Page 3


of that function.

Thirdly, if <id> is the name of a function that has been defined at the termi-
nal,  EDIT  will edit that function by a call to EDITDEF. In other words, EDIT
and EDITDEF are equivalent in this case.

If none of these conditions is satisfied, EDIT will abort with the error  that
<id> is not defined.

There are two cautions to be observed  in  using  this  command  to  reference
files.  First, you must not renumber the file or save it without line numbers,
since REDUCE  depends  on  the  explicit  line  numbers  for  its  references.
Secondly,  if you do not position the editor at the beginning of a command for
the second use of EDIT, then an error will obviously occur when  REDUCE  tries
to read the expression. The same cautions apply to CMD defined below.

     CMD <id><integer>[,<integer>]

This command causes the command defined at the line  <integer1>  in  the  file
<id> to be loaded. <integer2> can be used to specify an optional page.


6.  _I_M_P_L_E_M_E_N_T_A_T_I_O_N__D_E_P_E_N_D_E_N_T__P_A_R_A_M_E_T_E_R_S

6.1  _O_b_j_e_c_t__s_i_z_e_s

The maximum string and identifier lengths are limited only by the  total  size
of  the  memory partition for the names of such objects in the underlying LISP
interpreter.  This is usually several thousand characters  long.  However,  we
recommend  that  such  names  be limited to twenty-four characters or less for
compatibility with other versions of REDUCE.

Floating point numbers are printed with eight digit precision in either  fixed
notation  or  in  a scientific notation with a two digit exponent depending on
the size of the number.

Arbitrary precision integer and real arithmetic is supported.

Times (as reported by ON TIME or SHOWTIME)  are  given  in  milliseconds,  and
measure execution time including garbage collection time.  They do not include
operating system overhead (e.g., swapping time).

6.2  _S_p_e_c_i_a_l__c_h_a_r_a_c_t_e_r_s__a_n_d__i_n_t_e_r_r_u_p_t_s

Lower case input is permitted.

The end-of-file character is <control>Z.

<del> deletes a single character from terminal  input,  <control>U  the  whole
line.

A command may be terminated by <escape> instead  of  $.  This  has  the  added
advantage  that a Return is then not needed to evaluate the line.  <escape> is
also used to terminate strings in the REDUCE interactive editor.

Running REDUCE under TOPS-20                                            Page 4


^ may be used instead of ** to represent exponentiation.

6.3  _M_e_m_o_r_y__R_e_q_u_i_r_e_m_e_n_t_s

The distributed version of REDUCE requires a minimum of 193 pages of memory to
run.   This  size  will  increase  as  additional facilities are automatically
loaded by user actions.  A default expression workspace of approximately 26000
cells  is also provided, which may prove to be insufficient for some problems.
A command CORE is available to increase the size of the workspace.  This  com-
mand MUST be given at the top level and not from a file since it reinitializes
all file buffers.  CORE takes an integer as argument, representing  the  basic
REDUCE  program  size  in  K words (exclusive of operating system increments).
The minimum value is 60 (the default) and the maximum 124.   For  example,  to
increase the user workspace by 10K words, one would say:

     CORE 70;

at the top level.

6.4  _M_i_s_c_e_l_l_a_n_e_o_u_s

The internal ordering on alphabetic characters is from A through Z followed by
a through z.

To exit REDUCE use either "bye;" or "quit;".  These  are  equivalent.   If  no
non-ephemeral  processes  have been invoked after this, such a job may be res-
tarted by the operating system command CONTINUE.


7.  _I_M_P_L_E_M_E_N_T_A_T_I_O_N__D_E_P_E_N_D_E_N_T__E_R_R_O_R__M_E_S_S_A_G_E_S

A number of error messages from the underlying LISP system may  be  seen  from
time to time.  These include:

NO FREE STG LEFT
        Your problem is too large in its present form for the available
        workspace; either change your problem formulation or increase the
        amount of workspace by the CORE command

REG PUSHDOWN CAPACITY EXCEEDED
        Your program probably contains a non-terminating loop that exhausts
        the system's space for recursive references.  If you think your
        program is correct, ask your site consultant to build you a system
        with a bigger pushdown stack.

For further details, the Manual for Standard  LISP  on  DECSYSTEM  10  and  20
should be consulted.


8.  _F_U_R_T_H_E_R__H_E_L_P

For further help with REDUCE, please contact

     <list your site consultant here>


REDUCE Historical
REDUCE Sourceforge Project | Historical SVN Repository | GitHub Mirror | SourceHut Mirror | NotABug Mirror | Chisel Mirror | Chisel RSS ]