APL Machine

The APL Machine was a unique APL implementation by Analogic Corporation, created with the explicit purpose of facilitating programming their analog array processor.

History
The machine was conceived at a New Years party where Sanford Friedman, of Boston-based Planning Economics, introduced his colleague James L. Ryan to John Dobbs of Analogic Corporation. Analogic was interested in making their array processors easy to program. The array processors were typically attached to a Digital Equipment Corporation VAX and were programmed in Fortran using a large library of subroutines which loaded and then executed microcode into the Analogic array processor. Friedman and Ryan introduced Dobbs to APL and suggested that it would be a much easier vehicle for programming the array processors. The project was named in honour of a paper by Phil Abrams.

Development was done between 1982 and 1986 by Friedman and Ryan, together with Ron Murray, Gordon Lassar, Reed Shilts, Mike Duvos, Mike Berry, John Delo, Dick Suitor, David Grantz, Carl Zimmerman, Steve Atlas, Harvey Bingham and Richard Suitor. The APL Machine evolved as an Analogic AP-500 array processor, in which the primitives existed as microcode, driven by a Motorola 68000-based computing system which ran the interpreter and managed the I/O.

Features
The design was unusual in that the disk contained the all APL objects while the workspace was a directory of which objects were relevant to which workspace. To maintain the appearance of a separate workspace, activity counts were maintained for all objects. There was no file system. Instead, the 68000-based peripheral processor component contained a routine which constantly monitored the disk, performing on-the-fly optimization, necessary since the software required that all APL objects on disk be in contiguous storage. A consequence of all objects being kept were on desk at all times, was that the system could be powered off while running with no loss of data. Data could be imported or exported via magnetic tape as well as data communication.

The user interface, known as the APL workstation, was via a PC and included function and data editors using a multi-window interface capable of displaying up to ten concurrent tasks. Although the design was for the APL Machine to be a multi-user system, this capability was never fully developed.