[net.lang.apl] More on APL/11

otto (12/04/82)

I would like to comment on the differences I have noted between the version
of APL/11 I have been working with, and the version of APL John Levine
commented on, which apparently was an earlier version of the same program.
He commented that some of the major problems in his version of the code were
as follows:

  No terminal independence
  No labels in functions
  Kludgy function compilation which causes flakes when function
    definitions change
  No function editor
  No state indicator
  No file package
  No shared variables
  Teensy-weensy workspace (better on the vax than the 11, though)
  Dubious behavior with arguments in limiting cases (e.g. null args)

--------

My observations about these problem areas are as follows.

  No terminal independence

APL/11 only knows about one APL/ASCII mapping although there are two in the
world, known as *key pairing* and *bit pairing*. The code I have works with
what I consider the most popular mapping: key pairing.  It shouldn't be too
hard to have APL/11 work with both.

  No labels in functions

Labels can be used in functions in APL/11, but I have noticed certain
problems with their use.  If one function calls another function, and both
use a label with the same name, then *sometimes* when the inner function
returns control to the outer one the value of the label in the outer
function has been changed to what it was in the inner one. NOT GOOD!

  Kludgy function compilation which causes flakes when function
    definitions change
 
I haven't seen much of a problem here.

  No function editor

The standard APL function editor is not supported.  Instead, there is a
heavily reworked version of ED that can be used from APL to create and edit
functions.

  No state indicator

APL/11 has a state indicator, and it has the )SI command to display it.
The *right arrow* command  will remove the last suspended and all of its
dependant functions.  A command called )RESET will clear out the state
indicator altogether.  There is no )SINL command.

  No file package

There are numerous non-standard quad functions that allow an APL/11 program
to create, open, read, close, and erase files and to work with pipes.

  No shared variables

Right, there are none.

  Teensy-weensy workspace (better on the vax than the 11, though)

On the VAX 11/780, the size of the APL workspace is essentially limited only
by the virtual memory system.  On the PDP-11, only about 5000 numeric values
may be stored.

  Dubious behavior with arguments in limiting cases (e.g. null args)

True, as I have reported in my last note, and will mention in my forthcoming
more complete report about APL/11.

George Otto
Bell Labs, Indian Hill
----------------------