TMG (language) explained
In computing TMG (TransMoGrifier) is a recursive descent compiler-compiler[5] developed by Robert M. McClure and presented in 1965.[6] [7] TMG ran on systems including OS/360 and early Unix.[8] It was used to build EPL, an early version of PL/I.[8]
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.[9] 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.[10]
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]
See also
External links
- Encyclopedia: TMG – Compiler writing language . HOPL: Online Historical Encyclopaedia of Programming Languages . https://web.archive.org/web/20070921161049/http://hopl.murdoch.edu.au/showlanguage.prx?exp=242 . September 21, 2007.
Notes and References
- Web site: Early Translator Writing Systems - Brooker-Morris Compiler Compiler 1966. 2020-04-12. Atlas Computer Laboratory. TMG, ... comes later but appears to have not been influenced by the earlier systems [Alick Glennie's 1960 Syntax Machine, Ned Irons 1960 PSYCO compiler, or Brooker and Morris's 1960 Compiler-Compiler].. live. https://web.archive.org/web/20200131192031/http://www.chilton-computing.org.uk/acl/applications/cc/p007.htm. 31 January 2020.
- Book: Knuth, Donald . Donald Knuth . The Genesis of Attribute Grammars . https://www.dcs.warwick.ac.uk/~sk/cs325/gag.pdf . New York . Proceedings of the International Conference on Attribute Grammars and Their Applications (Paris, France) . Lecture Notes in Computer Science . P. Deransart . M. Jourdan . Springer-Verlag . 1990 . 461 . 1–12 . 10.1007/3-540-53101-7_1 . 978-3-540-53101-2 .
- Ritchie . Dennis M. . Dennis Ritchie . April 1993 . The Development of the C Language . Association for Computing Machinery, Inc. .
- McIlroy . M. D. . Douglas McIlroy . September 13, 1972 . A Manual for the Tmg Compiler-writing Language . Bell Laboratories . Murray Hill, New Jersey . 31 January 2020.
- Web site: M. Douglas McIlroy. Dartmouth College. 2020-04-12. live. https://web.archive.org/web/20200201043232/https://www.cs.dartmouth.edu/~doug/ . 1 February 2020. Some things I have worked on: Languages and compilers: macros, Lisp, PL/I, TMG (a compiler-compiler), regular expressions; influenced Snobol, Altran, C++ ....
- Book: McClure, R.M. . TMG—A Syntax-Directed Compiler . https://dl.acm.org/citation.cfm?id=806050&preflayout=flat . L. Winner . Proceedings of the 1965 20th national conference (ACM '65) . ACM . 1965 . 10.1145/800197.806050 . 262–274 . 978-1-4503-7495-8 . 44606611 .
- M. D. . McIlroy . Doug McIlroy . 1987 . A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986. CSTR . 139 . Bell Labs . PDF. live. https://web.archive.org/web/20200411235037/https://www.cs.dartmouth.edu/~doug/reader.pdf. 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, .
- Web site: TMG. www.multicians.org. 2020-04-12. live. https://web.archive.org/web/20200102213003/https://www.multicians.org/tmg.html. 2 January 2020. ... 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. .
- Web site: VCF East 2019 -- Brian Kernighan interviews Ken Thompson. Ken Thompson. YouTube. 6 May 2019. 2019-10-28.
- Web site: https://web.archive.org/web/20140908034458/http://cm.bell-labs.com/cm/cs/who/dmr/hist.html. 8 September 2014. dead. The Evolution of the Unix Time-sharing System*. 9 April 2004. Ritchie. Dennis M.. Dennis M. Ritchie. 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..
- Parsing algorithms with backtrack . . Birman . Alexander . Ullman . Jeffrey D . Jeffrey Ullman . 1–34 . 23 . Elsevier B.V . 1 . 1973 . 10.1016/S0019-9958(73)90851-6 . 0019-9958 .