The RESISTORS and Trac

From The R.E.S.I.S.T.O.R.S.
Revision as of 16:35, 28 July 2013 by JohnLevine (talk | contribs) (it really is like GPM)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

I'm not sure any of us exactly knew what Claude's job at Western Electric involved, but a significant chunk of it involved the "Trac processor" (interpreter for the Trac programming language) that he developed for the PDP-8.

Trac was a lightweight (in every sense) programming language developed by Calvin Mooers in the early 1960s, which was well-suited to the world of "minicomputers" that emerged as the 1960s progressed. Brevity was of value because minicomputers had extremely limited memory and very slow input-output. Trac was built on simple but powerful principles. It grew out of the idea of "macro expansion" and was similar to Strachey and McIlroy's GPM ("General Purpose Macrogenerator"). In modern terms it would be described as an (impure) functional programming language, with some similarities to LISP. Its major advance over previous macro languages was a clean separation between I/O and macro expansion.

In 2013, Nat Kuhn implemented a Trac processor in Python, which is available for download; he's also posted some reminiscences.

With Claude's encouragement and guidance, Barry Klein, Dave Theriault, Nat Kuhn, and John Levine worked on a Trac "primer," which included illustrations by Joe Tulloch.

John Levine and Peter Eichenberger implemented a Trac processor for the PDP-10, which the developed on the Applied Logic time-sharing system. When the PDP-11 came out, many of us were fascinated by its radical minicomputer architecture (at least after we got over the capitulation to IBM on the byte thing, and the octal-vs-hex thing). John and Peter ported their Trac processor the PDP-11, and managed to get DEC to lend them one for a computer show... where after a week of day and night programming, mostly waiting for the low speed paper tape reader, the PDP-11 ran a working version of Trac. Later they expanded it to a multi-user version of Trac under a time-sharing system that the two of them developed.

Claude was initially very supportive of crediting Mooers' for Trac; in fact, he put some of us up to deviling folks who did not give Mooers credit. Sometime after the RESISTORS left the barn, he and Mooers had a falling-out, which reportedly included a lawsuit by Mooers against Western Electric. Claude developed an alternative programming language in the mid-1970s, which he called SAM76. Presumably as a result of the legal difficulties, Claude was quite cagey about its relationship to Trac in a typically Claude-like way, saying that SAM could stand for "Strachey And McIlroy" or "Same As Mooers."

Claude distributed SAM76 in various version, and wrote a "SAM76 Language Handbook" including Joe's drawings and perhaps based in part on the RESISTORS original "primer," which he published under the pseudonym "Ancelme Roichel" (his middle names). In the book he claims that SAM76 is based on GPM and a language called M6 which google is not aware of and was perhaps a figment of Claude's imagination; he also credits "A very special man (whose name we dare not mention) who helped us understand the subtleties of another very interesting computer language and brought us ice cream that melted during a discussion," clearly a reference to Mooers.