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 ----------------------