Document Actions

Notes on LISP 1.5 for Raytheon 704 at SDC

by Jeff Barnett
July 2010

In the early days, Lisp hackers found excuses to develop Lisp systems on any computer that was accessible to them—unlike FORTRAN and COBOL, computer manufacturers rarely supplied Lisp systems. The System Development Corporation (SDC) had a Speech Understanding Research (SUR) program contract with DARPA for most of the 1970s. Their speech lab procured a Raytheon 704 computer for speech capture and low-level processing; that computer was “networked” to an IBM 360 where high-level processing functions were implemented, first in Lisp 1.5 for IBM 360 at SDC
and later in CRISP. The speech lab was used day and night. Researchers’ families and friends (the visitors) were also at the lab to see what was going on and why we were never at home.

The visitors were entertained and kept out of the researchers’ hair by letting them play with toys on the IBM 360 time-sharing system. At some point, the 360 was dedicated to batch processing most of second and all of third shift. The problem with visitors was no longer controlled. When it was noted that most of the visitors’ computer time was devoted to using Couch (an SDC Lisp version of Joe Weizenbaum’s Eliza program) a decision was made to move Couch onto the Raytheon 704. This provided the much needed excuse—see above—to implement a Lisp on the 704.

The 704 had 32K of 16-bit words. The operating system was entirely contained in a 2K-word block. That OS had drivers for a Tektronix graphics terminal, 3 fixed head disks, a magnetic tape, paper tape unit, Teletype, an ADC and a DAC, and a card reader. The OS also provided program overlay services from the disk to memory. The 704 had two registers: an accumulator and a combination auxiliary/index register. The latter was modified anytime a multiply, divide, or (most) shifts were done. Obviously, the Lisp implementation on this machine was interpretive.

The Lisp was written in a single weekend by Jeff Barnett early in 1971 and debugged in a few days the following week. The intent was to run Couch so the interpreter was not careful about structure creation and use. In fact the implementation closely resembled what one might expect for a class project. Only a dozen or so functions were hard-coded and a good deal of the interpreter was interpreted code. The Raytheon provided no clock facility but, judging from the computer lights, approximately half of computation time was spent in the garbage collector. This Lisp supported only cons nodes, symbols, and small integers. Pointers were 15 bits and the 16th bit of a structure word belonged to the garbage collector. Pointers to the space occupied by the OS and the interpreter were interpreted as integers so the numbers between, approximately -1500 and +1500, were the only numerical quantities available in this implementation.

Several serious programs were implemented by the SUR project in the Raytheon Lisp: a phonological rule applier, a simple speech system top end, a phonological dictionary, and the top end of a speech synthesis-by-rule program. In fact, a technical debate early in the SUR program, circa the end of 1971, led to the development of two fundamentally different speech systems: one that ran on the networked Raytheon 704 and the IBM 360 and one that ran entirely on the Raytheon. The latter consisted of low-level components coded in a combination of FORTRAN and machine code and high-end components coded in the interpretive Lisp! This system was snail like; for example, it had to swap Lisp and the other code every time the low-level processors were consulted. On the other hand, this kludge was one of the first few systems to work with continuously spoken input and a medium-sized (100+ words) vocabulary. Both speech systems were competent enough to impress DARPA of SDC’s progress and maintain their position as one of the SUR prime contractors.

The Raytheon 704 Lisp started life, as did many minor implementations of an interesting programming language and tool, as a fun thing to do. However, early in its life this Lisp was used to support some serious research interests and proved to be an indispensible tool to the SDC SUR program. The speech synthesis-by-rule system that ran entirely on the 704 became a separately funded contract with Rome Air Force Base. So we might consider this Lisp a financial as well as a technical success in addition to just plain fun.