TMG (language)
From Wikipedia, the free encyclopedia
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]
Designed by | Robert M. McClure |
---|---|
Developer | Robert M. McClure |
First appeared | 1963; 61 years ago (1963)[1] |
Dialects | |
Unix dialect (by Douglas McIlroy) | |
Influenced | |
TROL (by Donald Knuth)[2] |
Developer | Douglas McIlroy |
---|---|
First appeared | 1969; 55 years ago (1969) |
Filename extensions | .t |
Dialects | |
PDP-7 version, PDP-11 version | |
Influenced by | |
ALGOL 68,[3] B, PL/I, SNOBOL[4] | |
Influenced | |
B, Yacc |
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]