From "Using GECOS Programs in Multics" from the MULTICS System Programmer's Manual (1967):

"The TMG table interpreter is a more difficult case. It was written originally in CDC 1604 assembly language, edited over to IBM 7040 assembly language, converted to IBM 7090 BEFAP by defining macros for the 7040 opcodes, and finally converted to GE 635 GMAP by further defining macros for the 7090 op-codes. The program has gradually lost almost all its commentary and any trace of coherence it may ever have had. There is little likelihood that any further mechanical translation of this program is even possible." https://www.multicians.org/mspm/bx-17-00.670824.gecos-program-usage.pdf

@arclight
Old code stumbles forward.
Here many names of my youth.
@k9ox I'm not sure I was even walking when that document was published. It's a fascinating snapshot into an era where portability wasn't really an option and you couldn't just global-search-and-replace your way out of a problem. Also an interesting case of legacy code misery not due to basic neglect, just out of the lossy chaos of multiple ports.

@arclight

A tale of desperation!

@arclight
I wanted to know what TMG was. Turns out it's short for Transmogrifier, and it was a recursive descent compiler compiler. Eventually Doug McIlroy ported TMG to a very early Unix running on a PDP7. Then TMG could be used to produce compilers, the most significant for our purposes being Ritchie and Thompson's B. The initial project was to write a Fortran compiler but this was too big for their PDP7.

https://en.wikipedia.org/wiki/TMG_(language)

TMG (language) - Wikipedia

@Flittermouse Fascinating - thanks for pulling that thread!