TMG (language)


TMG is a recursive descent compiler-compiler created by and presented in 1965. TMG ran on systems like OS/360 and early Unix. It was used to build EPL, an early version of PL/I.
Douglas McIlroy ported TMG to an early version of Unix. According to Ken Thompson, McIlroy wrote TMG on a piece of paper and "decided to give his piece of paper his piece of paper," compiling assembly language that he entered and assembled on Thompson's Unix system running on PDP-7. 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.
Recursive descent algorithm of TMG was studied formally by Alexander Birman and Jeffrey Ullman. Formal description of the algorithms was named TMG recognition scheme.