#
Provenance of Algol-W

###
Ronald Tatum

In the summer of 1973, a fellow named Daren Appelt (an independent technical contributor - menaing he was really smart and could work on whatever he wanted and had no direct report responsibility) circulated a "gedanken" paper to the minicomputer group in TI in Houston to elicit ideas about what sort of machine TI might build as a successor to the 960A and 980A machines they were building at the time (dinosaur instruction sets and architectures built with "gold-plated" integrated circuit technology). A lot of the ideas were frankly plagiarized form DEC's UNIBUS scheme exemplified in the PDP-11, but were not intended to be crass theft of intellectual property - they were just discussion points.

Unfortunately, about the same time, the minicomputer group was approached by Sears and Ramada Inns for a "next-gneration" computer network system. Sears wanted a replacement for their NCR10 (20?)-based system they had deployted in their stores- a real tme "perfect" system but *too* expensive to upgrade (the people from Sears gave us listings of the OS/Apps, the third instruction of which reached back and modified the first instruction in the program, the fourth instruction scribbled over the next instruction - real good real-time reentrant code8-))) and the Ramada folks wanted something which was to be called the Ramada Inns "INNSTANT RESERVATION SYSTEM". (Yeah, that's really a double N) There was an Aggie (if you understand the most vile Polack jokes and assume they're reflections of reality, you understand Aggie jokes -they're all true) that wanted to be a hero; he put the Gedanken internal paper forth as the specification for the machine TI would build to satisfy both Sears' and Ramada's dreams...

And so the TI 990 was to come into being....

The 960 computer had development software packages that ran on the IBM 360, as did the 980. The cross-assembler for the 960 was written in Fortran, the linkage editor for it was written in COBOL. The 980 support package had the assembler written in COBOL, the linkage editor in Fortran (why not, the salesmaen give it to the customers for free, even though the list price was about $1500). So, in a stroke of true TI brilliance it was decided that the 990 would have a "better" (the max speed of the two cross-assemblers was about 500 cards per minute on a 360/65) cross-assembler written in Algol.

There was an immediate problem: TI had the IBM Algol -F compiler on its complex of IBM mainframes in Dallas, but there wasn't a soul in the internal tech support group that knew anything about the idiosyncracies (like the really bizarre thing that caused a fatal compiler error if the compiler first saw the token "COMMENT" before it saw the token "BEGIN"...). I had obtained a copy of the June, 1972, Stanford version of PL360 and the Algol-W compiler from Rice University, and so "we" decided that the cross-platform support package would be written in Algol-W since we had the thing and it made "good" code. Turns out Ramada had a Decsystem10 in Phoenix and they had DEC's version of Algol and Fortran/COBOL was really *rotten* for writing assemblers. So that decision sort of made sense. An intern working part-time for TI (I think he was working on a Master of Applied Mathematical Science [MAMS, which confused folks no end - what's a Master of Arts/Master of Science degree?] or a Master's degree in Computer Science (he went off to UT in Austin to work on a doctorate in CS) was assigned the task of writing an assembler that could run on a mainframe.

Now, he wasn't really lazy but he couldn't see any sense in declaring sets of arrays individually so he used that capability in the Stanford version of Algol-W. There were some issues with compatibility between Algol-60 on the PDP-10 and Algol-W programs, but they were though to be minor. Turns out the DEC compiler was a whiz-bang for numeric stuff as exemplified by stuff one would find in the "Collected Algorithms from CACM" , but the byte-handling code it generated was horrible - 10 to 20 instructions to access a single byte quantity! so I was tasked with finding an alternative to DEC's version of Algol.

I found out that Mike Green had done an Algol-W compiler between trying to do something about a PhD in Computer Science from SMU, writing a complete OS for the 360 and other trivial tasks. First time I knew Mike to be a lazy boy - he restricted the language so that lists of arrays were not permissible, only individual declarations were to be allowed. TI had a tie-line system that linked Houston to other sites and the quality of the connections was atrocious - wouldn't work reliably even at 300 baud. We could use direct dial, but that was too *expensive". Trying to access Alpha Systems' PDP-10 system wasn't working worth a flip. So they (TI) sent me and David Pitts up to Dallas to a shared motel room to convert the Algol-W 360 source to either DEC's version of Algol or Mike Green's version of Algol-W. After three days the motel bill was almost all of $200, so the folks in Houston put a stop to that. Back to Houston, show up in the place every day at 7:30 so the managers who came to work at 9:00 AM could see our loyal bodies, etc.

The upshot of the debacle was:

I obtained a listing of all the stuff Mike Green had done, supposedly complete and accurate.

It's not clear whether Alpha Systems had any business retaining copies of Mike's work on tape, but they had done so.

The META2C source is clearly by Mike Green, I think, because of some quirks in coding peculiar to Mike. Sort of how a ham can idetify another sending morse code by his "hand".

META, dating back to the 1963 ACM conferences on programming languages, is closely related to Robert M. McClure's TMG and Bill Waite's Stage 2 stuff.

At least part of the META code is bogus -- there's an opcode for Macro Assembler language that is (or was at the time) an invalid/illegal op-code. But the Algol-W compiler that supposedly was the result of the META2 process ran properly.