In computing TMG (TransMoGrifier) is a recursive descent compiler-compiler[5] developed by Robert M. McClure and presented in 1965.[6][7][8] TMG ran on systems including OS/360 and early Unix.[9] It was used to build EPL, an early version of PL/I.[9]
Quick Facts Designed by, Developer ...
Close
Quick Facts Developer, First appeared ...
Close
Douglas McIlroy ported TMG to an early version of Unix. According to Ken Thompson, McIlroy wrote TMG in TMG on a piece of paper and "decided to give his piece of paper his piece of paper," hand-compiling assembly language that he entered and assembled on Thompson's Unix system running on PDP-7.[10] Thompson used TMG in 1970 as a tool to offer Fortran, but due to memory limitations of PDP-7 ended up creating the B programming language which was much influenced by BCPL.[6]
The recursive descent algorithm of TMG was studied formally by Alexander Birman and Jeffrey Ullman. The formal description of the algorithms was named TMG recognition scheme (or simply TS).[11]
"M. Douglas McIlroy". Dartmouth College. Archived from the original on 1 February 2020. Retrieved 2020-04-12. Some things I have worked on: Languages and compilers: macros, Lisp, PL/I, TMG (a compiler-compiler), regular expressions; influenced Snobol, Altran, C++ ...
Ritchie, Dennis M. "The Evolution of the Unix Time-sharing System*". Archived from the original on 8 September 2014. Retrieved 9 April 2004. Every program for the original PDP-7 Unix system was written in assembly language, and bare assembly language it was—for example, there were no macros. Moreover, there was no loader or link-editor, so every program had to be complete in itself. The first interesting language to appear was a version of McClure's TMG that was implemented by McIlroy. Soon after TMG became available, Thompson decided that we could not pretend to offer a real computing service without Fortran, so he sat down to write a Fortran in TMG. As I recall, the intent to handle Fortran lasted about a week. What he produced instead was a definition of and a compiler for the new language B.
McIlroy, M. D. (1987). A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 11 April 2020. Doug (M. Douglas) McIlroy exercised the right of a department head to muscle in on the original two-user PDP-7 system. Later he contributed an eclectic bag of utilities: tmg for compiler writing, speak for reading text aloud, diff, and join. He also collected dictionaries and made tools to use them: look (v7, after a model by Ossanna), dict (v8), and spell (v7). ... On the tiny PDP-7 the assembler was supplemented by tmg, Doug McIlroy's version of Bob McClure's compiler-compiler. ... V2 saw a burst of languages: a new tmg, ... and Ritchie's first C,
"TMG". www.multicians.org. Archived from the original on 2 January 2020. Retrieved 2020-04-12. ... TMG that runs under OS360 (sic) ... Mike Green took Bob McClure's 7090/7040 version and implemented the compiler-compiler on the 360; ... TMG was the compiler definition tool used by Ken Thompson to write the compiler for the B language on his PDP-7 in 1970. B was the immediate ancestor of C.